zoukankan      html  css  js  c++  java
  • C#高级编程读书笔记——foreach

    C#中的foreache语句不会解析为IL代码中的foreach语句。C#编译器把foreach语句转换为IEnumerable接口的方法和属性。
    下面是一个简单的foreach语句,它迭代了数组persons中所有元素
    foreach(person p in persons)
    {
    Console.Writeline(p);
    }
    foreach语句会解析为下面代码段。首先,调用GetEnumerable()方法,获得数组的一个枚举。在while循环中,只要MoveNext()返回为true,用Current属性访问数组中的元素:
    IEnumerator enumerator = persons.GetEnumerator();
    while(enumerator.MoveNext())
    {
    Person P = (Person) enumerator.Current;
    Console.WriteLine(p);
    }

    C#1.0使用了foreach语句可以轻松实现迭代集合,但创建枚举器需要做大量工作,C#2.0添加了yield语句,以便创建枚举器。
    yield return 返回集合中的一个元素,并移动到下一个元素上。yield break 可停止迭代。
    public class HelloCollection
    {
    public IEnumerator GetEnumerator()
    {
    yield return "Hello";
    yield return "World";
    }
    }
  • 相关阅读:
    winform 计算器
    js 特效代码网址
    js 动图效果
    计算器 练习
    html frameset 练习
    SQL 仓库管理练习题
    数据库存取图片
    数据库查询Database中的表
    面向对象练习
    C#函数与SQL储存过程
  • 原文地址:https://www.cnblogs.com/zoupeiyang/p/1531872.html
Copyright © 2011-2022 走看看