yield return 和yield break

这个还是有点意思,两个都是有返回的意思,但是区别在哪里呢? 1.return 会销毁函数的局部变量,下次调用的时候又会产生新的值 2.yield 当退出函数的时候,变量人然存在,函数下次调用的时候变量仍然存在。

"yield break"用来表明迭代结束,跳出迭代

以下示例来源网络:

class A:IEnumerable { private int[] array=new int[10]; public IEnumrator GetEnumerator() { for(int i=0;i<10;i++) { yield return array[i]; } } }

如果你只想让用户访问ARRAY的前8个数据,则可做如下修改.这时将会用到yield break,修改函数如下

public IEnumrator GetEnumerator() { for(int i=0;i<10;i++) { if(i<8) yield return array[i]; else yield break; } }

这样,则只会返回前8个数据.

"yield break"用来表明迭代结束,跳出迭代

下面是个例子,如果你定义这样一个迭代函数:

int i = 0; while (true) { if (i < 5) { yield return i; } else { yield break; } i++; } Console.Out.WriteLine("无法执行~");

 

转载于:https://www.cnblogs.com/tiancai/p/4885357.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页