Когда я пишу следующий код на C #:
SqlCeCommand command;
try
{
// The command used to affect the data
command = new SqlCeCommand
{
// init code removed for brevity
};
// Do stuff
// Do more stuff
}
finally
{
if (command != null)
command.Dispose();
}
Resharper жалуется на мою проверку команды! = Null. В нем говорится, что команда не может быть назначена (потому что она может каким-то образом выйти из строя при построении и по-прежнему попасть в блок try).
Поэтому я изменяю объявление команды на SqlCeCommand command = null;
и все довольны.
Но мне остается только гадать, в чем разница?
И почему по умолчанию не устанавливается значение null? Значение: Чем полезен C #, если локальные переменные по умолчанию не равны нулю?