這兩種聲明(引入)變量的方式有什麼實際區別(速度,內存)嗎?哪一個更好?C#變量聲明
實施例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];
}
感謝。
這兩種聲明(引入)變量的方式有什麼實際區別(速度,內存)嗎?哪一個更好?C#變量聲明
實施例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];
}
感謝。
示例1使得m
在內存中僅在for循環的範圍內爲「活動」。
示例2使得m
在for循環完成執行後保持佔用內存。
我將與例1走,這是爲什麼: Declaring variables inside or outside of a loop(我真的不能告訴你,詳細,迫使你閱讀的鏈接。)
Performance-wise
兩者都編譯爲相同的IL,所以沒有區別。
第一個更好,因爲你的意思是在每次迭代中都有一個新的對象。如果環路條件失敗,也不需要有對象
你爲什麼認爲他們編譯到相同的IL? –
如果你要使用內部的對象循環只有它的好處,只有它。 http://stackoverflow.com/questions/8803674/declaring-variables-inside-or-outside-of-a-loop –
對不起,我應該搜索更多的前面的問題。這似乎已經在先前的案例中得到了回答。 – user3057255