Инициализация переменных значением null при объявлении
От: Стажер  
Дата: 22.09.07 15:19
Оценка:
Зачем некоторые товарищи при объявлении переменной присваивают ей null явно?
Чем такое объявление
SomeType someVar = null;

отличается от такого
SomeType someVar;

или это просто кодинг стайл такой? Тогда в чем его смысл?
Re: Инициализация переменных значением null при объявлении
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.09.07 15:30
Оценка:
Здравствуйте, Стажер, Вы писали:

С>Зачем некоторые товарищи при объявлении переменной присваивают ей null явно?

С>Чем такое объявление
С>
С>SomeType someVar = null;
С>

С>отличается от такого
С>
С>SomeType someVar;
С>


Для локальных переменных разница очень большая: если вы попытаетесь передать неинициализированную переменную в качестве аргумента метода или каким-либо другим образом считать ее значение, Вы получите ошибку компиляции. Если же речь идет о полях класса, то никакой разницы действительно нет: они и так будут иметь значение по умолчанию (для ссылочных типов — null).
Re[2]: Инициализация переменных значением null при объявлени
От: adontz Грузия http://adontz.wordpress.com/
Дата: 22.09.07 16:00
Оценка:
Здравствуйте, nikov, Вы писали:

N>Для локальных переменных разница очень большая: если вы попытаетесь передать неинициализированную переменную в качестве аргумента метода или каким-либо другим образом считать ее значение, Вы получите ошибку компиляции. Если же речь идет о полях класса, то никакой разницы действительно нет: они и так будут иметь значение по умолчанию (для ссылочных типов — null).


Вообще-то разщница есть, если написать SomeType someVar = null;, то переменная будет инициализированна два раза, о чём и сообщает FxCop, кстати.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Инициализация переменных значением null при объявлени
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.09.07 16:49
Оценка:
Здравствуйте, adontz, Вы писали:

N>>Если же речь идет о полях класса, то никакой разницы действительно нет: они и так будут иметь значение по умолчанию (для ссылочных типов — null).


A>Вообще-то разщница есть, если написать SomeType someVar = null;, то переменная будет инициализированна два раза, о чём и сообщает FxCop, кстати.


Согласен. Я имел в виду, что (1) код так же успешно скомпилируется, (2) поле будет иметь то же самое значение.
Re[3]: Инициализация переменных значением null при объявлени
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.09.07 16:55
Оценка:
Здравствуйте, adontz, Вы писали:

A>Вообще-то разщница есть, если написать SomeType someVar = null;, то переменная будет инициализированна два раза, о чём и сообщает FxCop, кстати.


Справедливости ради надо заметить, что при компиляции в Release режиме такие избыточные инициализации выкидываются.
Re[3]: Инициализация переменных значением null при объявлени
От: TK Лес кывт.рф
Дата: 23.09.07 08:38
Оценка: :))) :))) :)
Здравствуйте, adontz, Вы писали:

A>Вообще-то разщница есть, если написать SomeType someVar = null;, то переменная будет инициализированна два раза, о чём и сообщает FxCop, кстати.


А комментарии из тела цикла ты случайно не выносишь?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Инициализация переменных значением null при объявлени
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.09.07 09:49
Оценка:
Здравствуйте, TK, Вы писали:

TK>А комментарии из тела цикла ты случайно не выносишь?


Ну, типа, ха-ха
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.