Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi GetEnumerator und Freigabe (https://www.delphipraxis.net/78411-getenumerator-und-freigabe.html)

Jens Schumann 4. Okt 2006 16:23


GetEnumerator und Freigabe
 
Hallo,
ich beschäftige mich gerade mit dem neuen For In.
Als Beispiel habe ich mir TList herausgesucht und den VCL-Quelltext studiert.
Dabei ist mir aufgefallen das die Methode GetEnumerator eine Referenz
auf eine TListEnumerator Instanz zurückgibt. Das passiert bei jedem
Aufruf von For In. D.h. es wird jedesmal ein neues TListEnumerator
erstellt.

Frage:
Wo und wann werden die TListEnumerator Referenzen wieder freigeben?

Elvis 4. Okt 2006 16:42

Re: GetEnumerator und Freigabe
 
Zitat:

Zitat von Jens Schumann
Frage:
Wo und wann werden die TListEnumerator Referenzen wieder freigeben?

Der Compiler generiert hier einen SEH um sicherzustellen dass der Enumerator freigegeben wird.
Kann man sich entfernt so vorstellen wie die Referenzzählung von Strings/Interfaces. ;)

r2c2 4. Okt 2006 17:41

Re: GetEnumerator und Freigabe
 
SEH? Was is das? Wenn ich danach suche bekomme ich nur "nicht gefunden", "Ich seh' dich net", "Süddeutsches Eisenbahnmuseum Heilbronn" und ähnliches...

mfg

Christian

xaromz 4. Okt 2006 17:53

Re: GetEnumerator und Freigabe
 
Hallo,

vermutlich Structured Exception Handling.

Gruß
xaromz

r2c2 5. Okt 2006 15:53

Re: GetEnumerator und Freigabe
 
Zitat:

Zitat von xaromz

Danke, das würds so ungefähr erklären... Mehr oder weniger jedenfalls...

Allerdings spricht die Grammatik gegen diese Interpretation...
Zitat:

Zitat von Elvis
einen SEH

Der Handling? :gruebel:

Ich geh mal von aus, es is hier sowas wie n try...finally-Block gemeint... oder?

mfg

Christian

Elvis 5. Okt 2006 16:01

Re: GetEnumerator und Freigabe
 
Zitat:

Zitat von r2c2
Ich geh mal von aus, es is hier sowas wie n try...finally-Block gemeint... oder?

Japp, Ich kenne es als strict exception handler, aber das ist wohl das Problem mit Akronymen. Man denkt sein Gegenüber arbeitet benutzt die gleichen und urplötzlich hat man einen Kleinwagen gebaut anstatt den Reperaturservice für die Espressomaschine angerufen. :freak:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz