Ejemplo n.º 1
0
        static void Main()
        {
            ClassB b = new ClassB();
            ClassA a = null;

            //--------------------------------------------- is ---------------------------------------------
            // Оператор is - проверяет совместимость объекта с заданным типом.
            // Если предоставленный объект может быть приведен к предоставленному типу не вызывая исключение,
            // выражение is принимает значение true.

            // Например, в следующем коде определяется, является ли объект экземпляром типа A или типа, производного от A:

            if (b is ClassA)
            {
                a = (ClassA)b;
            }
            else
            {
                a = null;
            }

            //--------------------------------------------- as---------------------------------------------
            // Оператор as используется для выполнения преобразований между совместимыми ссылочными типами.
            // Оператор as подобен оператору приведения. Однако, если преобразование невозможно,
            // as возвращает значение null, а не вызывает исключение.

            // В общем виде логика работы оператора as представляет собой механизм использования оператора is
            // (пример на 25 строке), только в сокращенном виде.

            a = b as ClassA;

            // Delay.
            Console.ReadKey();
        }
Ejemplo n.º 2
0
        static void Main()
        {
            ClassA instanceA = new ClassA();
            instanceA.Method1();
            instanceA.Method2();

            Console.WriteLine(new string('-', 15));

            ClassB instanceB = new ClassB();
            instanceB.Method1();
            instanceB.Method2();

            Console.WriteLine(new string('-', 15));

            ClassC instanceC = new ClassC();
            instanceC.Method1();
            instanceC.Method2();

            // Delay.
            Console.ReadKey();
        }