Skip to content

IEnumerator

Enumerator support interface.

Declaration

Source position: objpash.inc line 354

type

  IEnumerator = interface(IInterface)
    function GetCurrent : TObject;
    function MoveNext : Boolean;
    procedure Reset;
    property Current: TObject; {r}
  end;

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.

Properties

Member Visibility Description
Current read only default Return the current item.
See all Properties

Methods

Member Visibility Description
GetCurrent default Returns the current element in the iteration cycle.
MoveNext default Move to the next value.
Reset default Reset the pointer.
See all Methods

See also

Name Description
IEnumerable Interface to retrieve an enumerator from a class.