这两种声明(引入)变量的方式之间是否有任何实际差异(速度,记忆)?哪一种更好?
示例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];
}
感谢。
答案 0 :(得分:1)
Performance-wise
两者都被编译为相同的IL,因此没有区别。
第一个更好,因为你意味着在每次迭代中都有一个新对象。如果循环条件失败,也不需要有对象
答案 1 :(得分:1)
示例1使得m
在内存中仅在for循环的范围内“活着”。
示例2使得m
在for循环完成执行后仍然占用内存。
我会选择示例1,这就是原因: Declaring variables inside or outside of a loop(我不会详细告诉你,强迫你阅读链接。)