Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#10

Re: for..in Schleifen: Wie in Win32 realisiert?

  Alt 26. Sep 2004, 21:09
Nach meiner Ansicht gibt es für den Compiler, unter Verwendung der spärlichen Informationen von oben, die Möglichkeit
  • "über ein Muster" oder
  • über die Implementierung des Interface IEnumerable
einer Klasse zu entscheiden, ob mit der neuen For-Schleife über ein Objekt iteriert werden kann.

Lassen wir ersteres außer Acht (siehe vorheriges Posting), hat der Compiler die Möglichkeit, über die Tatsache, dass eine Klasse das Interface implementiert, im Fall von oben auch die Möglichkeit, die Tabelle aller implementierten Interfaces zu erfragen (Achtung, dies schließt dann schon dynamische Proxies aus), um eine Referenz auf die Interfacebeschreibung mitsamt Methodentabelle zu erlangen. Es ist es nicht notwendig, Referenzen zu erhöhen, um die so erlangten Referenzen auf Methoden der Art HasNext und GetNext zu verwenden.

Handelt es sich beim Containerausdruck selbst um ein Interface, ist der Aufruf von _AddRef und _Release unproblematisch.
gruß, choose
  Mit Zitat antworten Zitat