ジェネレータ (プログラミング)
C#にもyieldキーワードがある。
yieldステートメントを含むブロックを反復子 (iterator) もしくは反復子ブロック (iterator block) と呼ぶが、これはジェネレータそのものである。
反復子メソッドの戻り値にはIEnumerable/IEnumeratorもしくはジェネリック版のIEnumerable<T>/IEnumerator<T>のいずれかを指定する
yield returnは値を生成する
yield breakは値の生成を終了する