重複の可能性:
yield ステートメントの実装
私はmsdnのドキュメントを見てきましたが、次のように書かれています:
yield キーワードは、それが現れるメソッドが反復子ブロックであることをコンパイラに通知します。コンパイラは、反復子ブロックで表現される動作を実装するクラスを生成します。iterator ブロックでは、yield キーワードを return キーワードと共に使用して、列挙子オブジェクトに値を提供します。
つまり、yield
キーワードはシンタックス シュガーであり、コンパイラは Iterator を生成するという大変な作業を行います。(私は正しいですか?)
では、このシンタックス シュガーに対して生成された実装コードは何でしょうか。