예제 #1
0
        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
                   ));
        }
예제 #2
0
        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
                );
            }
        }