![]() |
Frage zu Propertys
Hallo,
wenn ich eine Klasse schreibe und eine Property lesen und schreiben möchte, dann schreibe ich mir für das Schreiben immer einen "Setter", wie es ![]() Aber was spricht denn gegen
Delphi-Quellcode:
?
property Name: String read FName write FName;
Ich schreibe ja auch nicht für jede Property einen "Getter"... Gruß, Lukas |
AW: Frage zu Propertys
Eigentlich gar nichts.
|
AW: Frage zu Propertys
Hmmm... Dann werde ich das in Zukunft so machen :thumb:
|
AW: Frage zu Propertys
ist mehr zu schreiben als
Delphi-Quellcode:
und anschließend Shift+SRTG+C
property Name: String;
|
AW: Frage zu Propertys
Und mehr überflüssiger Code.
|
AW: Frage zu Propertys
Zitat:
Delphi-Quellcode:
und TAB und den Namen :mrgreen:
propf
|
AW: Frage zu Propertys
Wo war jetzt nochmal im Eingangspost die Bemerkung, das die Anzahl der Tastendrücke irgendeine Rolle spielt? :gruebel:
|
AW: Frage zu Propertys
Wenn im Setter absolut nichts gemacht wird, außer in das Feld zu schreiben, dann ist der natürlich sinnlos und du kannst direkt in das Feld schreiben.
Vom Code her ist es dennoch möglich später einen Setter einzufügen, wenn dieser nun doch benötigt wird. Der Vorteil beim Setter ist, daß du dort einen Haltepunkt reinmachen kannst, um Schreibzugriffe zu debuggen. Oder man kann dort den zugewiesenen Wert prüfen und ungültige Werte unterbinden. Aber, wie bereits erwähnt, dannst du den nötigen Setter dann immernoch einbauen. Zitat:
![]() ![]() ... PS: Diese Vorlagen erzeugen sogar das Feld
Delphi-Quellcode:
, wenn es noch nicht existiert.
FName: string;
[add] ![]() Das Tutorial sollte man besser mal reparieren. :wall: Zitat:
Und wo ist das Override? Und wo sind die Inherited? Und weiter wollte ich nicht mehr schauen, da ich Angst bekommen hab. |
AW: Frage zu Propertys
Wenn ich noch etwas hinzufügen darf:
Properties mit direkten Lese- und/oder Schreibzugriff auf Variablen sind meines Erachtens unsauber und "starr" (natürlich gibt es wirklich Ausnahmen, bei denen es sich für uns Delphi-Entwickler vielleicht wirklich nicht lohnt extra Getter/Setter anzulegen). Aber letztendlich entspricht das der Veröffentlichung einer Variable (also "public FVariable: Integer" (Lesen + Schreiben)) und ist auch in anderen Sprachen eher ein NoGo würde ich sagen. Es macht meines Erachtens in den meisten Fällen durchaus Sinn sich die "Mühe" zu machen Getter und Setter zu schreiben, da man so viel flexibler ist. Außerhalb deiner Klasse hat es niemanden zu interessieren was Du intern machst (z.B. den Wert in die entsprechende Variable zu schreiben). Mit Flexibel meine ich: Du musst deine Property-Deklaration nicht anpassen wenn Du die interne Variable änderst (read/write Sektion) und Du kannst problemlos weitere Aktionen innerhalb der Getter und Setter antriggern, die im Laufe der Entwicklung vielleicht noch kommen (nach dem Setzen z.B. Log schreiben, vor dem Lesen ein Flag setzen oder sonst was). Ich finde es am elegantesten gleich mit Interfaces zu arbeiten, wo Du dann auch gezwungen wärst (;-))Getter und Setter zu implementieren. Hier hast Du dann in den Tests auch den Vorteil, deine Klassen einfacher zu mocken (durch Testklassen auszutauschen). |
AW: Frage zu Propertys
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz