小编典典

是否会在带有空对象的 using 语句中调用 Dispose()?

all

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


阅读 82

收藏
2022-07-14

共1个答案

小编典典

是的,Dispose()仅在非空对象上调用:

http://msdn.microsoft.com/en-
us/library/yh598w02.aspx

2022-07-14