2013-12-09 5 views
1

Существует ли какая-либо практическая разница (скорость, память) между этими двумя способами объявления (введения) переменных? Какой из них лучше?Объявление переменной 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

Если вы собираетесь использовать объект внутри для петля только ее хорошо, чтобы иметь ее только для. http://stackoverflow.com/questions/8803674/declaring-variables-inside-or-outside-of-a-loop –

+0

Извините, я должен искать предыдущие вопросы больше. На это, похоже, уже ответили в более раннем случае. – user3057255

ответ

1

Пример 1 делает так, чтобы m был только «живой» в памяти в рамках цикла for.

Пример 2 делает так, чтобы m оставался занимающим память после завершения цикла for.

Я бы с примером 1, вот почему: Declaring variables inside or outside of a loop (я не сказать вам, в деталях, чтобы заставить вас прочитать по ссылке.)

1

Performance-wise оба скомпилированы к тому же ИЛ, поэтому нет никакой разницы.

Первый из них лучше, потому что вы имеете в виду, что на каждой итерации есть новый объект. Также нет необходимости иметь объект, если условие цикла не работает

+1

Почему вы верите, что они скомпилируются с тем же IL? –

Смежные вопросы