/// <summary> /// 4. Пример работы с IDisposable. /// </summary> static void Question4() { Console.WriteLine("\nПросто вызовем Dispose\n"); var test = new DisposeTectingClass("test"); test.Dispose(); Console.WriteLine("\nВызовем Dispose через using\n"); using (var test2 = new DisposeTectingClass("test2")) { test2.Show(); } Console.WriteLine("\nВызовем Dispose в try/catch\n"); var test3 = new DisposeTectingClass("test3"); try { test3.Show(); } catch { Console.WriteLine("ОШИБКА????"); } finally { test3.Dispose(); } GC.Collect(); }
/// <summary> /// 5. Пример работы с инструкцией using /// </summary> static void Question5() { var someText = "строка1 \nстрока2 \nстрока3"; using var reader = new StringReader(someText); var item = reader.ReadLine(); while (!string.IsNullOrEmpty(item)) { Console.WriteLine(item); item = reader.ReadLine(); } // еще раз using - тут видно что Dispose вызывается using var test = new DisposeTectingClass("Чтобы был"); GC.Collect(); }