Hallo,
Zitat von
Bernhard Geyer:
Ich denke wenn Du den Assembler-Code anschaust wird für eine einfache := Nil-Zuweisung noch einiges an Code aufgerufen.
So viel ist das nicht. Eigentlich wird nur _Release aufgerufen.
Nochmal zum Verständnis:
Jedesmal, wenn eine neue Referenz auf ein Interface erzeugt wird, sorgt Delphi dafür, dass die Methode _AddRef des Interface aufgerufen wird. Beim Entfernen der Referenz (auf nil setzen, Scope verlassen) wird automatisch _Release aufgerufen. Deshalb sind z. B. Funktionen mit einem try..Finally umgeben. Im Finally wird _Release für alle lokalen Referenzen aufgerufen.
Da das alles die Compiler-Magic macht, bekommt der Programmierer davon normalerweise nichts mit.
Gruß
xaromz