C#中的yield
2020-12-13 13:48
标签:style http os ar 使用 for sp strong 文件 一、C#中yield关键字用于遍历循环中,yield语句的两种形式 yield return用于返回IEnumerable yield break用于终止循环遍历。 二、yield return的用法 使用yield return获取集合,并遍历。 生成项目,并用反编译可执行文件。查看GetList方法,发现该方法返回的是一个GetList类的实例。原来yield return是"语法糖",其本质是生成了一个GetList的实例。 那GetList实例是什么呢?点击反编译工具中 分析代码后可以知道 1、原来GetList类实现了IEnumerable和IEnumerator的泛型、非泛型接口 2、yield return返回的集合之所以能被迭代、遍历,是因为GetList内部有迭代器 3、yield return之所以能实现"按需供给",是因为GetList内部有一个_state字段记录这上次的状态 三、yield break的用法 使用yield break可以在获取集合的时候,当符合某种条件就终止获取集合。 四、C#中yield关键字的总结 1、yield return能返回一个"按需供给"的集合 2、yield return是"语法糖",其背后是一个实现了IEnuerable,IEnumerator泛型、非泛型接口的类,该类维护着一个状态字段,以保证yield return产生的集合能"按需供给" 3、yield break配合yield return使用,当产生集合达到某种条件的时候使用yield break,以终止继续创建集合 C#中的yield 标签:style http os ar 使用 for sp strong 文件 原文地址:http://www.cnblogs.com/gc2013/p/4055925.html class Program
{
public static Random r = new Random();
static IEnumerable
class Program
{
static Random rand = new Random();
static IEnumerable