[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] Reference for unit 'System' (#rtl)

IEnumerator

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Enumerator support interface

Declaration

Source position: objpash.inc line 250

type IEnumerator = interface(IInterface)

  function GetCurrent;

  

Returns the current element in the iteration cycle

  function MoveNext;

  

Move to the next value

  procedure Reset;

  

Reset the pointer

  property Current: TObject; [r]

  

Return the current item

end;

Inheritance

IEnumerator

  

Enumerator support interface

IInterface

?

Description

IEnumerator is the interface needed by the For ... in ... language construct, when operating on classes. It contains all methods that the compiler needs to implement a loop.

A for in loop like the following:

For O in MyObject do
  begin
  // do things
  end;

is treated by the compiler as equivalent to the following code:

Var
  I : IEnumerator;
  O : TObject;
    
begin
  I:=MyObject.GetEnumerator;
  While I.MoveNext do
    begin
    O:=I.GetCurrent;
    // Do things
    end; 
end.  

Any class that implements the IEnumerable interface must be able to return an IEnumerator instance for the compiler to use in a For in loop.

See also

IEnumerable

  

Interface to retrieve an enumerator from a class.

The latest version of this document can be found at lazarus-ccr.sourceforge.net.