zoukankan      html  css  js  c++  java
  • foreach的原理

    1、foreach 语句对实现 System.Collections .IEnumerable 或 System.Collections.Generic .IEnumerable <T > 接口的数组或对象集合中的每个元素重复一组嵌入式语句。 foreach 语句用于循环访问集合,以获取您需要的信息,但不能用于在源集合中添加或移除项,否则可能产生不可预知的副作用。 如果需要在源集合中添加或移除项,请使用 for 循环。

    2、可以在 foreach 块的任何点使用 break 关键字跳出循环,或使用 continue 关键字进入循环的下一轮迭代。

    3、foreach 循环还可以通过 goto、 return 或 throw 语句退出。

    4、foreach 语句运行过程如下:
    c#中的foreach语句不会解析为IL代码中的foreach语句。c#编译器会把foreach语句转换为IEnumerable接口的方法和属性:
    例如:
    foreach(var p in persons)
    {
    Console.WriteLine(p);
    }
    首先,调用GetEnumerator()方法,获得数组的一个枚举器。例:IEnumerator<Person> enumerator = persons.GetEnumerator();
    在while循环中,调用枚举器的MoveNext()方法,如果返回true,就用Current属性访问数组中的元素,例:
    while(enumerator.MoveNext())
    {
    Person p=enumerator.Current;
    Console.WriteLine(p);
    }

  • 相关阅读:
    session的使用
    不可变对象的魅力
    协变和逆变
    LaTeX 学习小结
    KMP 算法的两种实现
    MySQL MVCC
    Java 并发之 Executor 框架
    Java 动态代理的简单使用和理解
    Java 偏向锁、轻量级锁和重量级锁
    事件循环和协程
  • 原文地址:https://www.cnblogs.com/simpleZone/p/5113380.html
Copyright © 2011-2022 走看看