>了解C#foreach循环和闭合问题
> C#中的lambda表达式和匿名方法可能会导致循环中的“修改后的闭合”问题。当循环变量在循环主体内重复使用时,会导致意外行为时,就会发生这种情况。 C#编译器的初始设计,将循环变量放在循环范围之外,这导致了这个问题。最初是无害的,但C#2.0中的封闭语义引入了这一缺陷。 这种方法增加了微妙,难以找到的错误而没有任何明显优势的可能性。foreach
>
c#5的解决方案:打破变化
为了解决这些问题,C#5引入了一个重大变化:
> foreach
。这样可以防止以前遇到的封闭问题。此修改可增强可预测性并减少使用闭合循环时的错误。>
foreach
>要记住,这种变化仅影响循环;
循环仍然不受影响。 此外,此修复程序是C#5及以后的独有的。较早的版本保留了原始行为。 开发人员在使用循环时应保持警惕,并在较旧的C#版本中关闭。
以上是c#5如何解决lambda表达式的循环封闭问题?的详细内容。更多信息请关注PHP中文网其他相关文章!