一、在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一:
(1)yield return <expression>;
(2)yield break;
二、备注 :
计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。
yield 语句只能出现在 iterator 块中,该块可用作方法、运算符或访问器的体。
这类方法、运算符或访问器的体受以下约束的控制:
(1) 不允许不安全块。
(2) 方法、运算符或访问器的参数不能是 ref 或 out。
(3) yield 语句不能出现在
匿名方法中。
(4) 当和 expression 一起使用时,yield return 语句不能出现在 catch 块中或含有一个或多个 catch 子句的 try 块中。
三、实例:
- using 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);
- }
- }
- }
输出如下所示:
2 4 8 16 32 64 128 256
相关文章可参考: