可能是重复问题:
如何在C#中使用foreach循环?
我在网上搜索了一下,但仍然无法找到关于C#中foreach
循环的背后发生了什么的答案。
我知道这个问题实际上与编程无关,但这让我困扰。我对面向对象编程尤其是接口比较新。我明白它们是合同,也明白IEnumerable
和IEnumerator
的工作原理 - 或者我认为是这样。
我一直在阅读MSDN上的这篇文章: IEnumerable Interface
我明白所有东西是如何设置的。但在Main
循环中,我有点不清楚foreach
如何知道遍历_people
中的所有值。它如何知道这一点?通过调用return new PeopleEnum(_people);
它如何跟踪Current
?
编辑:我不明白这怎么是严格的重复问题。是的,它们有相似的背景,并且同样的问题正在被问,但我们正在寻找不同的答案或我想要的答案没有在以前的问题中讨论。
像foreach(int i in obj){...}这样的foreach循环实际上等同于
......“kinda”不是我要找的答案。
foreach
循环,但它并没有真正解释编译器如何使用它。我更感兴趣的是背后的实现。 - Adam Beck