Когда я пишу следующий код на 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();
}
Решарпер жалуется на мою проверку команды! = Null.В нем говорится, что команда не может быть назначена (потому что она может каким-то образом потерпеть неудачу в построении и все же попасть в блок try).
Поэтому я изменяю объявление команды на SqlCeCommand command = null;
, и все довольны.
Но мне интересно, в чем разница?
И почему по умолчанию он не равен нулю? Значение: Каким образом C # выигрывает не от того, что локальные переменные по умолчанию обнуляются?