【发布时间】:2016-07-11 19:49:55
【问题描述】:
在单步执行 C# 代码时,我注意到调试器在 foreach 声明中停止了 3 次:
- 首先,它突出显示集合。
- 然后,它突出显示 in 运算符。
- 最后突出显示变量。
我想了解调试器在做什么。例如,它在 for 循环中是有意义的。在初始化期间,它分配变量,然后检查条件。在每个后续循环开始时,它会更新变量,然后检查条件。
似乎在foreach中,它需要在初始化期间在in运算符处获取一个枚举器,然后只在每个循环开始时分配下一项。
我正在使用 Visual Studio。
【问题讨论】:
-
编译器正在打盹,因为编译器是在编译时使用的,而不是运行时使用的(除非你在使用它们时会知道的特殊情况)。听起来您将编译器与调试器混淆了,您的问题现已更新以反映这一点。
-
这个SO answer的一个很好的解释
标签: c# visual-studio foreach