예제 #1
0
        static void Main(string[] args)
        {
            Debug.WriteLine("***** Fun with Dispose *****\n");

            // Создание высвобождаемого объекта и вызов метода
            // Dispose () для освобождения любых внутренних ресурсов.
            MyResourceWrapper rw = new MyResourceWrapper();

            rw.Dispose();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }

            try
            {
                // Использование членов rw.
            }
            finally
            {
                // Обеспечение вызова метод Dispose() в любом случае,
                //в том числе при возникновении ошибки.
                rw.Dispose();
            }

            // Use a comma-delimited list to declare multiple objects to dispose.
            using (MyResourceWrapper rw1 = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            {
                // Use rw and rw2 objects.
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("****** Fun with Dispose *****\n");

            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }

            DisposeFileSystem();

            // метод Dispose() вызывается автоматически при выходе за пределы области действий
            // допускается объявлять несколько объектов одного и того же типа
            // при попытке применить using к объекту, не реализующему интерфейс IDisposable
            // возникнет ошибка на этапе компиляции
            using (MyResourceWrapper wrapper = new MyResourceWrapper(),
                   wrapper2 = new MyResourceWrapper())
            {
                // использовать объект wrapper и wrapper2
            }

            Console.ReadLine();
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");

            MyResourceWrapper rw = new MyResourceWrapper();

            rw.Dispose();
            Console.ReadLine();

            //MyResourceWrapper rw = new MyResourceWrapper();
            //if (rw is IDisposable)
            //    rw.Dispose();
            //Console.ReadLine();

            //MyResourceWrapper rw = new MyResourceWrapper();
            //try
            //{
            //    // Использование членов rw.
            //}
            //finally
            //{
            //    // Обеспечение вызова метод Dispose() в любом случае,
            //    //в том числе и при возникновении ошибки.
            //    rw.Dispose();
            //}

            // Use a comma-delimited list to declare multiple objects to dispose.
            //using (MyResourceWrapper rw = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            //{
            //    // Use rw and rw2 objects.
            //}
        }
예제 #4
0
        static void Main(string[] args) {
            MyResourceWrapper rw = new MyResourceWrapper();
            rw.Dispose();

            try {
                MyResourceWrapper rw1 = new MyResourceWrapper();
            } finally {
                rw.Dispose();
            }

            using (MyResourceWrapper rw2 = new MyResourceWrapper(),
                rw3 = new MyResourceWrapper()) {
                
            }

            Console.ReadLine();
        }
예제 #5
0
        static void UseDispose()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("=> Disposable");

            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");
            // Create a disposable object and call Dispose()
            // to free any internal resources.
            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }
            Console.ReadLine();
        }
예제 #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with IDisposable *****");
            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }

            // Dispose() is called automatically when the
            // using scope exits.
            using (MyResourceWrapper rw2 = new MyResourceWrapper())
            {
                // Use rw2 object.
            }

            Console.ReadLine();
        }
예제 #8
0
        static void Main(string[] args)
        {
            Console.WriteLine("**** Fun with dispose ****");
            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }
            //OR
            //using (MyResourceWrapper rw1 = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            //{
            //    // use rw1 and rw2
            //}

            DisposeFileStream();

            Console.ReadLine();
        }