Zitat von
scrat1979:
//EDIT: @elvis - Was sind denn Iteratoren? Evtl. kenne ich nur den Begriff nicht, jetzt bin ich aber neugierig geworden und Google liefert mir nichts...
Damit kann man eine for-in Iteration sozusagen von innen aufbauen und man muss nur einzelne Werte rauswerfen, die dann ein Schleifendurchlauf im for-in werden.
Sinnbefreites Beispiel für die nichtssagende Erklärung
:
Delphi-Quellcode:
type
Sample = class
public
class method Test(startValue, endValue : Integer) : sequence of Integer; iterator;
end;
implementation
class method Sample.Test(startValue, endValue : Integer) : sequence of Integer;
begin
for i : Integer := startValue to endValue do
yield i;
end;
Könnte man so benutzen:
Delphi-Quellcode:
for i in Sample.Test(2, 10) do
Console.WriteLine(i);
Der wirklich Iterator (oder Enumerator in MS-speak) wird vom Compiler als eine state machine umgesetzt, die bei jedem Aufruf auf MoveNext zum nächsten yield springt.