public static void NoUsingDueToAssignment() { PrintOnDispose printOnDispose = new PrintOnDispose("Wrong"); try { printOnDispose = new PrintOnDispose("Correct"); } finally { printOnDispose.Dispose(); } }
public static void NoUsingDueToAssignment2() { PrintOnDispose printOnDispose = new PrintOnDispose("NoUsing(): Wrong"); try { printOnDispose = new PrintOnDispose("NoUsing(): Correct"); } finally { IDisposable disposable = (object)printOnDispose as IDisposable; if (disposable != null) { disposable.Dispose(); } } }
public static void NoUsingDueToByRefCall() { PrintOnDispose printOnDispose = new PrintOnDispose("NoUsingDueToByRefCall(): Wrong"); try { Console.WriteLine("NoUsingDueToByRefCall"); Clear(ref printOnDispose); } finally { IDisposable disposable = (object)printOnDispose as IDisposable; if (disposable != null) { disposable.Dispose(); } } }