Czy użycie using
instrukcji na (potencjalnie) pustym obiekcie jest bezpieczne?
Rozważmy następujący przykład:
class Test {
IDisposable GetObject(string name) {
// returns null if not found
}
void DoSomething() {
using (IDisposable x = GetObject("invalid name")) {
if (x != null) {
// etc...
}
}
}
}
Czy jest zagwarantowane, że Dispose
zostanie wywołany tylko wtedy, gdy obiekt nie jest pusty, a ja nie otrzymam NullReferenceException
?