c# yield函数怎么用
c# yield函数怎么用,yield 关键字在 C# 2.0 中首次引入,T 返回一个实现 IEnumerable 接口的对象。
yield 关键字用于构建元素序列的生成器。可创建一个生成您需要的序列的方法。
此处唯一的限制是该方法必须返回以下类型之一:IEnumerable、IEnumerable<T>、IEnumerator 或 IEnumerator<T> yield 可用于方法、属性和运算符。
看下面的代码,
static IEnumerable < int > GenerateFibonacciNumbers(int n) {
for (int i = 0, j = 0, k = 1; i < n; i++) {
yield
return j;
int temp = j + k;
j = k;
k = temp;
}
}
static void Main(string[] args) {
foreach(int x in GenerateFibonacciNumbers(10)) {
Console.WriteLine(x);
}
}
yield 返回 j; 在不退出“for”循环的情况下一个接一个地返回斐波那契数。状态信息被保留,不需要创建中间列表或数组来保存需要生成并返回给调用者的斐波那契数。换句话说,yield 关键字作为一个状态机反应来维护状态信息。
MSDN 声明:“在循环方法中到达 yield return 语句时,将返回表达式,并保留代码中的当前位置。下次调用循环函数时,将从该位置重新开始执行。”
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!