Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#变量声明_C#_Variables_Declaration - Fatal编程技术网

C#变量声明

C#变量声明,c#,variables,declaration,C#,Variables,Declaration,在这两种声明(引入)变量的方法之间是否存在实际差异(速度、内存)?哪种方法更好 例1: for (int i = 0; i < myObjects.Length; i++) { MyObject m = myObjects[i]; } for(int i=0;i

在这两种声明(引入)变量的方法之间是否存在实际差异(速度、内存)?哪种方法更好

例1:

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

MyObject m = null;

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

谢谢。

性能方面的
都编译到相同的IL,所以没有区别


第一个更好,因为您希望在每次迭代中都有一个新对象。此外,如果循环条件失败,则不需要对象。示例1使对象在for循环范围内的内存中仅处于“活动”状态

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

我将使用示例1,这就是为什么:
(我不会详细地告诉你,强迫你阅读链接。)

如果你打算只在循环中使用对象,最好只在循环中使用对象。对不起,我应该多搜索前面的问题。这似乎已经在前面的案例中得到了回答。为什么你认为它们编译成相同的IL?