C#变量声明

时间:2013-12-09 05:33:54

标签: c# variables declaration

这两种声明(引入)变量的方式之间是否有任何实际差异(速度,记忆)?哪一种更好?

示例1:

for (int i = 0; i < myObjects.Length; i++)
{
    MyObject m = myObjects[i];
}

示例2:

MyObject m = null;

for (int i = 0; i < myObjects.Length; i++)
{
    m = myObjects[i];
}

感谢。

2 个答案:

答案 0 :(得分:1)

Performance-wise两者都被编译为相同的IL,因此没有区别。

第一个更好,因为你意味着在每次迭代中都有一个新对象。如果循环条件失败,也不需要有对象

答案 1 :(得分:1)

示例1使得m在内存中仅在for循环的范围内“活着”。

示例2使得m在for循环完成执行后仍然占用内存。

我会选择示例1,这就是原因: Declaring variables inside or outside of a loop(我不会详细告诉你,强迫你阅读链接。)