Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Typinformation von Records

  Alt 25. Sep 2007, 15:47
Der Grund ist, das referenzgezählte Typen aufgeräumt werden müssen. Beispiel: Ich habe eine lokale Variable als Record deklariert, der ein IInterface-Feld besitzt. Wenn ich diesem Feld etwas zuweise, greift die Referenzzählung. Wenn ich die Routine verlasse, muss der Referenzzähler dekrementiert werden. Dies wird erledigt, indem auf die Typinformation zugegriffen wird. Wenn jedoch kein Feld, welches aufgeräumt werden muss, im Record enthalten ist, dann wird die Typinformation intern nicht benötigt.
Referenzgezählte Typen sind dynamische Arrays, Interfaces und Ansistrings. Bei Varianten bin ich mir ehrlich gesagt nicht ganz sicher, ich habe mich mit ihnen nie näher auseinandergesetzt.
Wenn du keine Lösung finden solltest, dann nimm lieber einen der oben genannten Typen, diese sind nur 4 Byte, statt 16 Bytes bei Variants, groß.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat