栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#在foreach中重用变量是否有原因?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#在foreach中重用变量是否有原因?

编译器以一种很容易出错的方式声明该变量,该错误通常很难查找和调试,同时不会产生明显的好处。

您的批评是完全有道理的。

我在这里详细讨论这个问题:

关闭循环变量被认为是有害的

使用foreach循环,是否可以通过内部作用域变量进行编译而无法做到?还是这只是在匿名方法和lambda表达式可用或通用之前做出的任意选择,并且此后没有进行过修改?

后者。实际上,C#1.0规范没有说明循环变量是在循环体内还是在循环体内,因为它没有明显的区别。在C#2.0中引入闭包语义时,已做出选择,将循环变量置于循环之外,与“
for”循环一致。

我认为可以说所有人都对该决定表示遗憾。这是C#中最糟糕的“陷阱”之一, 我们将进行重大更改来修复它。 在C#5中,foreach循环变量在逻辑上将
位于 循环体内,因此闭包每次都会获得新的副本。

for
循环将不会改变,并且改变不会是“向后移植”到C#的早期版本。因此,在使用此惯用语时,您应继续小心。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号