[fpc-pascal] For-in-loop question about GetEnumerator

Krzysztof dibo20 at wp.pl
Fri May 16 23:13:43 CEST 2014


Hi,

This article is quite clear for me: http://wiki.freepascal.org/for-in_loop

But let say that I have this class:

TMyList = class
private
  FList: TList
public
  constructor Create;
  destructor Destroy;

  procedure Add;
  procedure Remove;
end;

Now I want to do:

for a in MyClass do
begin

end;

Can I do this without creating new enumerator? I mean pass enumerator from
FList? I'm confused because if I create function:

function TMyClass.GetEnumerator: TListEnumerator
begin
  Result := FList.GetEnumerator;
end;

... then FList.GetEnumerator create new object
(TListEnumerator.Create(Self)). My question is, where it is freed? Is it
freed automatically on runtime after exit from loop? I don't want memory
leak

Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20140516/0e13aa38/attachment.html>


More information about the fpc-pascal mailing list