C# yeild的兩種形式的yield語句:
yield return <expression>; yield break;
使用 yield return 語句每一次返回每個元素。
將使用 foreach 語句從客戶端程式碼中呼叫迭代器。 foreach 迴圈的每次迭代都會呼叫迭代器方法。 迭代器方法執行到 yield return 語句時,會返回一個expression表示式並保留當前在程式碼中的位置。 當下次呼叫迭代器函式時執行從該位置重新啟動。
可以用 yield break語句來終止迭代。
示例:
using System; using System.Collections.Generic; using System.Text; class Program { static void Main(string[] args) { foreach (int i in Power(2, 8)) { Console.WriteLine(i); } } public static IEnumerable<int> Power(int number, int exponent) { int result = 1; for (int i = 0; i < exponent; i++) { result *= number; yield return result; } } }
執行輸出:
2 4 8 16 32 64 128 256 請按任意鍵繼續. . .