public static TReturn DisposedConditional <TReturn>(this IExtendedDisposable disposable, string exceptionMessageWhenDisposed, Func <TReturn> whenNotDisposed) { TReturn WhenDisposed() { throw new ObjectDisposedException(exceptionMessageWhenDisposed); } if (disposable == null) { return(WhenDisposed()); } return(disposable.DisposedConditional ( WhenDisposed, whenNotDisposed )); }
public static void DisposedConditional(this IExtendedDisposable disposable, string exceptionMessageWhenDisposed, Action whenNotDisposed) { void WhenDisposed() { throw new ObjectDisposedException(exceptionMessageWhenDisposed); } if (disposable == null) { WhenDisposed(); } else { disposable.DisposedConditional ( WhenDisposed, whenNotDisposed ); } }