«Unassigned» - это не то же самое, что «null».Ваш код просто недействителен - вам нужно его исправить.
Здесь все очень просто - просто инициализируйте переменную null
, чтобы начать с:
object thing = null;
Теперь он определенно будет иметьзначение (нулевая ссылка), поэтому вы можете читать из него в блоке finally
.
Дело в том, что локальные переменные не могут быть прочитаны до точки, в которой компиляторможет доказать, что значение (нулевое или нет) определенно было присвоено.По сути, локальные переменные не имеют «значений по умолчанию».
(Имейте в виду, я бы обычно использовал IDisposable
для кода очистки вместе с оператором using
.)