Пример #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
 private static void UsingDeclaration()
 {
     using var rw = new MyResourceWrapper();
     // Do something here
     Console.WriteLine("About to dispose");
     // Variable disposed at this point
 }
Пример #3
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();
            //try
            //{
            //    // Use the members of rw.
            //}
            //finally
            //{
            //    // Always call Dispose(), error or not.
            //    if (rw is IDisposable)
            //    {
            //        rw.Dispose();
            //    }
            //}

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

            // Use a comma-delimited list to declare multiple objects to dispose.
            using (MyResourceWrapper rw = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            {
                // Use rw and rw2 objects.
            }

            Console.WriteLine("Demonstrate using declarations");
            UsingDeclaration();
            Console.ReadLine();
        }
Пример #4
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.
            //}
        }
Пример #5
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();
        }
Пример #6
0
 private static void UsingDeclaration()
 {
     //This variable will be in scope until the end of the method
     using var rw = new MyResourceWrapper();
     //Do something here
     Console.WriteLine("About to dispose.");
     //Variable is disposed at this point.
 }
Пример #7
0
        private static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****");
            using (MyResourceWrapper rw = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            {
            }

            Console.ReadLine();
        }
Пример #8
0
        static void UsingKeyword()
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("=> using keyword");

            using (MyResourceWrapper rw = new MyResourceWrapper()) {
                //Use rw object
            }
        }
Пример #9
0
        static void MultiObjects()
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("=> multiple objects");

            using (MyResourceWrapper rw = new MyResourceWrapper(), rw2 = new MyResourceWrapper()) {
                //Use rw and rw2 objects
            }
        }
 static void Main(string[] args)
 {
     Console.WriteLine("***** Fun with Dispose *****\n");
     // Dispose() is called automatically when the
     // using scope exits.
     using (MyResourceWrapper rw = new MyResourceWrapper(),
            rw2 = new MyResourceWrapper())
     {
         // Use rw and rw2 objects.
     }
 }
Пример #11
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");

            using (MyResourceWrapper rw = new MyResourceWrapper())
            {
                
            }

            Console.ReadLine();
        }
Пример #12
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");
            // Create a disposable object and call Dispose() to free any internal resources.
            using (MyResourceWrapper rw = new MyResourceWrapper(), rw2 = new MyResourceWrapper())
            {
                // Use rw and rw2 objects
            }

            Console.ReadLine();
        }
Пример #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");

            // Use a comma-delimited list to declare multiple objects to dispose.
            using (MyResourceWrapper rw = new MyResourceWrapper(),
                   rw2 = new MyResourceWrapper())
            {
                // Use rw and rw2 objects.
            }
        }
Пример #14
0
        static void UseDispose()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("=> Disposable");

            MyResourceWrapper rw = new MyResourceWrapper();

            if (rw is IDisposable)
            {
                rw.Dispose();
            }
        }
Пример #15
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");

            // Метод Dispose() вызывается автоматически при выходе за пределы using.
            using (MyResourceWrapper rw = new MyResourceWrapper(),
                   rw2 = new MyResourceWrapper())
            {
                // Use rw and rw2 objects.
            }

            Console.ReadKey();
        }
Пример #16
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();
        }
Пример #17
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Fun with Dispose *****\n");

            //  Create a disoposable object and call Dispose()
            //  to free any internal resources.
            //  Using "using" keyword, Dispose() is called automatically
            //  when the "using" scope exits.
            using (MyResourceWrapper rw = new MyResourceWrapper(),
                   rw2 = new MyResourceWrapper())
            {
                //  use the members of rw.
            }
            Console.ReadLine();
        }
Пример #18
0
        static void Main(string[] args)
        {
            Console.WriteLine("Fun with Dispose *****");
            //  当退出using作用域时,自动调用Dispose()
            using (MyResourceWrapper rw = new MyResourceWrapper(),
                   rw2 = new MyResourceWrapper())
            {
                //  使用rw和rw2对象
            }

            Console.WriteLine();

            DisposeFileStream();

            Console.ReadLine();
        }
Пример #19
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();
        }
Пример #20
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();
        }
Пример #21
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();
        }