Iteratoren (yield)

class C {
   public IEnumerator<int> GetEnumerator () {
      yield return 2; yield return 3;
      yield return 5; yield break;
   }
}

bei Aufruf von MoveNext() wird bis zum nächsten yield gerechnet.

aufrufendes Programm und Iterator verhalten sich wie Co-Routinen (Programme mit stückweise verschränkter Ausführung).

(Beispiel Primzahlen.)



Johannes Waldmann 2007-06-21