您无需检查的IDisposable对象null。using不会引发异常,Dispose()也不会被调用:
DisposableObject TryOpenFile() { return null; } // 一次性此处为null,但这不会引发异常 using (var disposable = TryOpenFile()) { // 这将引发NullReferenceException,因为一次性值为null disposable.DoSomething(); if(disposable != null) { // 在这里我们很安全,因为一次性物品已经过检查为空 disposable.DoSomething(); } }