Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Klasse als parameter übergeben Const, Var, ...

  Alt 3. Feb 2023, 12:20
Klassen sind im Prinzip Pointer, also ihr Inhalt kann auch ohne VAR und sogar bei CONST geändert werden.

Eine Art "real const" ist auch nicht möglich, da der Compiler garnicht entscheiden/wissen kann, ob z.B. beim Zugriff auf Property/Methoden sich etwas ändert.

prinzipiell halte ich es so
Code:
VAR obj        = es kann/wird das komplette Objekt durch eine andere Instanz getauscht/erstellt/freigegeben

OUT obj        = es geht nie etwas (gültiges) rein und es kommt immer was Neues raus, oder NIL

obj            = die Instanz bleibt gleich, aber ihr inhalt könnte sich ändern

CONST          = prinzipiell der Inahlt der Klasse ändert sich nicht (auch wenn es eigentlich nichts mit dem CONST zu tun hat, da sich der Zeiger so oder so nicht ändert, also nur als Dokumentation)
                  (ok, Meistens lasse ich es auch in diesem Fall oft weg, also gemischt mit OHNE)

CONST [Ref] obj = Ist wie CONST, aber der Zeiger selbst wird dennoch als Referenz auf die Variable übergeben, nicht nur der Wert des Pointers.
                  Syntaktisch hat es für mich aber keine Beziehung zu Objekten.

Bei der Benamung hab ich dann ich noch ein paar Conventionen (so in etwa):

GetIrgendwas gibt ein Objekt zurück, aber es kümmert sich jemand um die Freigabe (es bleibt in dessen Besitz).
CreateIrgendwas oder GenerateIrgendwas erzeugt etwas und der Aufrufer hat sich um die Freigabe zu kümmern.
Und ansonsten wird Abweichendes brav im /// <returns> ... </returns> erwähnt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Feb 2023 um 12:24 Uhr)
  Mit Zitat antworten Zitat