С куском кода, подобным этому, компилятор жалуется на c.MyProperty
:
MyClass c;
try { throw new Exception(); }
catch (Exception) { }
c.MyProperty = 2; // "Use of unassigned local variable 'c'".
Однако он не жалуется, если вы назначили null
to c
при инициализации:
MyClass c = null;
try { throw new Exception(); }
catch (Exception) { }
c.MyProperty = 2; // no complains this time.
Итак, почему это работает? Если c
не был присвоен null
, и гипотетически допустил его компилятор, не было бы исключено одно и то же исключение в c.MyProperty
, Ссылка на объект, не установленная на экземпляр объекта?