C#using语句是空安全的

示例

您无需检查的IDisposable对象null。using不会引发异常,Dispose()也不会被调用:

DisposableObject TryOpenFile()
{
    return null;
}

// 一次性此处为null,但这不会引发异常 
using (var disposable = TryOpenFile())
{
    // 这将引发NullReferenceException,因为一次性值为null
    disposable.DoSomething(); 

    if(disposable != null)
    {
        // 在这里我们很安全,因为一次性物品已经过检查为空
        disposable.DoSomething();
    }
}