【发布时间】:2015-05-20 11:29:07
【问题描述】:
我在我们的代码库中遇到了这个:
foreach (var evtType in EventLocator.GetTypes())
并记住 Shlemiel 画家的算法 方法 EventLocator.GetTypes() 是在每个循环上调用还是只调用一次?
【问题讨论】:
-
这也是相关的,但作为重复关闭:How is foreach implemented in C#?
-
@Kobi 我知道为什么您将其标记为重复,但我在您链接的答案中看不到我的问题的答案,因为我想知道是否调用了返回集合的方法在每个循环上或仅一次。您链接的问题中的所有示例都使用了未从方法返回的预制集合。
-
我只有在确保the answer 存在后才关闭,在“A foreach 循环 [...] 有点等同于”下。
var tmp = obj.GetEnumerator();表示该方法只调用一次,用于创建枚举器。
标签: c#