C# yeild使用

libingql發表於2014-05-31

  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
請按任意鍵繼續. . .

相關文章