C# 中的 foreach 循环
问题:
哪些类型的类允许使用 foreach 循环?
答案:
从技术上讲,任何具有名为 GetEnumerator() 的公共方法的类,该方法返回具有 bool MoveNext() 方法和 Current 属性的类型,都可以使用。但是,最常见的解释涉及实现 IEnumerable 或 IEnumerable 的类,返回 IEnumerator 或 IEnumerator。
扩展来说,任何实现 ICollection 或 ICollection 的类(例如,Collection、List、数组 (T[]))都可以支持 foreach 循环。
工作原理:
foreach 循环的工作原理如下:
- 从给定对象 (obj) 的 GetEnumerator() 方法初始化一个临时对象 (tmp)。
- 只要 tmp.MoveNext() 返回 true,就重复执行循环体(用 {...} 括起来),其中包含 Current 的当前值。
变体:
- 如果 tmp 支持 IDisposable,则在循环完成时使用它来处理 tmp。
- C# 5.0 允许在循环内声明像 i 这样的变量,而在早期版本中,它们必须在循环外声明。当在循环内的匿名方法或 lambda 表达式中使用 i 时,这种区别变得至关重要。
以上是哪些类型的 C# 类支持 Foreach 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!