2007-04-01から1日間の記事一覧

LINQ の世界: deferred query evaluation と immediate query evaluation

C# のイテレータの振る舞いを理解したところで,次のコードを見てみましょう. static IEnumerable<int> Rand() { Trace.WriteLine("Generated"); Random rand = new Random(); while (true) { yield return rand.Next(); } } このイテレータは,見ての通り無限に</int>…

コードジェネレータとしての C# イテレータ

前回 (id:NyaRuRu:20070331:p1) C# のイテレータで「列挙前」の処理を書ける,つまり Enumerator のコンストラクタに実装コードを流し込めると書きましたが,たぶんそういう事実は無いので訂正しておきます. どういうことかを示すために,次のようなコード…