Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Ein Objekt in einer Funktion zerstören

  Alt 30. Sep 2020, 09:49
Ohne VAR kann die Variable außerhalb, beim Freigeben, nicht auf NIL gesetzt werden, damit auch spätere If-Assigned und Free-Aufrufe die bereits erfolgte Freigabe erkennen können.

Zitat:
call by value oder call by reference
Das ist ersmal egal.
Objekte sind immer Referenzen
und ob die "Variable" im Parameter als Referenz übergeben wird, das hängt von der Deklaration und der Größe des Typen ab.
VAR = immer Referenz
ohne = immer eine Kopie (ByValue)
const = hängt vom Typ ab (SizeOf>Pointer oder bei Size=Pointer, ob gemanagter Typ ala String und Interface)
const [ref] = immer referenz (bei Objekten also eine Referenz in einer Referenz)

Diesbezüglich hat sich aber in den letzten Jahren die Hilfe wesentlich verbessert, denn derartige Verhalten sind nun dokumentiert.
http://docwiki.embarcadero.com/RADSt...meter_(Delphi)
https://stackoverflow.com/questions/...ameters-useful
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Sep 2020 um 10:03 Uhr)
  Mit Zitat antworten Zitat