最終更新:2011-08-22 (月) 20:05:37 (4602d)
yield
Top / yield
列挙子オブジェクトに値を挿入する場合、または反復処理?の終了を通知する場合に、iterator ブロック内で使用されます。形式は次のいずれかになります。
yield return <expression>; yield break;
http://msdn.microsoft.com/ja-jp/library/9k7k7cf0(VS.80).aspx
メモ
yield キーワードを使う場所は限られていて、IEnumerator または IEnumerable インタフェースを戻り値するイテレータブロックと呼ばれる中でしか使えません。 ただし、匿名メソッドや finally ブロックなどで利用することはできません。
yield キーワードは単体で利用するものではなく、yield return、または yield break とすることで意味を成します。 これらは return や break を修飾しているというよりも、yield return 文、及び yield break 文として、イディオム的に捕らえるというのが正しいと思われます。
例
using System; class Test { public static System.Collections.IEnumerable GetIterator() { yield return 1; yield return 10; yield return 100; yield return "ネコミミモード"; } static void Main() { foreach(object n in GetIterator()) { Console.WriteLine(n); } } } >test 1 10 100 ネコミミモード