Чи безпечно використовувати using
оператор на (потенційно) нульовому об'єкті?
Розглянемо наступний приклад:
class Test {
IDisposable GetObject(string name) {
// returns null if not found
}
void DoSomething() {
using (IDisposable x = GetObject("invalid name")) {
if (x != null) {
// etc...
}
}
}
}
Чи гарантовано, що Dispose
буде викликано лише якщо об'єкт недійсний, і я не отримаю NullReferenceException
?