yield核心原理是在迭代器區塊中用於向枚舉數物件提供值或發出迭代結束訊號,其語句只能出現在iterator區塊中,該區塊可用作方法、運算子或訪問器的體。
yield核心原理是:
在迭代器區塊中用於向枚舉數對象提供值或發出迭代結束訊號。
它的形式為下列之一:
複製程式碼yield return <expression>;yield break;
備註計算表達式並以枚舉數物件值的形式傳回;
expression
必須可以隱式轉換為迭代器的yield 類型。
yield 語句只能出現在 iterator 區塊中,該區塊可用作方法、運算子或存取器的體。
這類方法、運算子或存取器的體受以下限制的控制:
不允許不安全區塊。
方法、運算子或存取器的參數不能是 ref
或 out
。
yield 語句不能出現在匿名方法中。
當和 expression 一起使用時,yield return 語句不能出現在 catch 區塊中或含有一個或多個 catch 子句的 try 區塊中。範例在下面的範例中,迭代器區塊(這裡是方法 Power(int number, int power))中使用了 yield 語句。當呼叫 Power 方法時,它會傳回一個包含數字冪的可枚舉物件。
注意 Power 方法的回傳類型是 IEnumerable
(一種迭代器介面類型)。
yield-example.csusing System;using System.Collections;public class List{ public static IEnumerable Power(int number, int exponent) { int counter = 0; int result = 1; while (counter++ < exponent) { result = result * number; yield return result; } } static void Main() { // Display powers of 2 up to the exponent 8: foreach (int i in Power(2, 8)) { Console.Write("{0} ", i); } }}
以上是yield核心原理是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!