Osc*_*ros 6 c# variables scope
ReSharper通常会告诉我这一点,而且我仍然在寻找为什么这样做的充分理由.
我想到的唯一一件事就是声明它更接近它将使用的范围,可以避免在某些不需要的情况下初始化它(因为条件等)
与此相关的事情如下:
int temp;
foreach (var x in collection) {
temp = x.GetValue();
//Do something with temp
}
Run Code Online (Sandbox Code Playgroud)
这真的不同于
foreach (var x in collection) {
int temp = x.GetValue();
//...
}
Run Code Online (Sandbox Code Playgroud)
我的意思是,第二个代码不是更昂贵,因为它每次都在分配内存吗?或两者都一样?当然,在完成循环之后,在第二个代码中垃圾收集器将关注temp变量,但不是在第一个...
第二个例子的成本可以忽略不计.唯一的区别是,在第一个示例中,temp将在for循环范围之外可用,因此它将比在for循环内声明它的时间更长.
如果您不需要 temp在for循环之外,则不应在该循环之外声明它.就像其他人所说的那样,可读性和风格在这里比性能和记忆更有效.
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |