私は VB.Net 開発者であり、C# の初心者のようなものです。C# のドキュメントを見ながら、イテレーターとジェネレーターを使用しましたが、使用方法を完全には理解できませんでした。
19632 次
1 に答える
30
IEnumerable<T>
イテレータは、IEnumerator<T>
自分で実装する必要なく、アイテムのシーケンスを生成する簡単な方法です。IEnumerable<T>
イテレータは、 foreach ループで列挙できるを返すメソッドです。
簡単な例を次に示します。
public IEnumerable<string> GetNames()
{
yield return "Joe";
yield return "Jack";
yield return "Jane";
}
foreach(string name in GetNames())
{
Console.WriteLine(name);
}
ステートメントに注意してyield return
ください。これらのステートメントは実際にはメソッドから返されるのではなく、実装を読んでいる人に次の要素を「プッシュ」するだけです。
コンパイラがイテレータ ブロックを検出すると、実際にはそれを と を実装するクラスのステート マシンに書き換えIEnumerable<T>
ますIEnumerator<T>
。イテレータの各yield return
ステートメントは、そのステート マシンの状態に対応します。
イテレータの詳細については、Jon Skeet によるこの記事を参照してください。
于 2010-09-22T10:05:24.307 に答える