Exemple #1
0
        static void Main(string[] args)
        {
            Transport transport = new Transport("type", 111);

            transport.DoClone();
            Transport.Car car = new Transport.Car("name");
            car.DoClone();
            Transport.Train train = new Transport.Train(222);
            train.DoClone();
            Transport.Car.Motor motor = new Transport.Car.Motor(30);
            motor.DoClone();
            Transport.Train.Motor   motor1  = new Transport.Train.Motor(40);
            Transport.Train.Express express = new Transport.Train.Express(555);
            express.DoClone();
            Transport.Train.Carriage carriage = new Transport.Train.Carriage(60);
            carriage.DoClone();
            if (train is Transport)
            {
                //Ключевое слово IS позволяет сравнить объект и тип данных, что бы определить принадлежит ли наш объект этому типу. Возвращает данная конструкция либо true либо false.
                Console.WriteLine("Train is transport");
            }
            else
            {
                Console.WriteLine("Train is not transport");
            }
            Transport.Car car1 = transport as Transport.Car;
            //Ключевое слово AS служит для перевода объекта к указанному типу, но в отличие от знакомой конструкции используемой в примере выше [(тип)объект], в случае невозможности привести объект к указанному типу мы вместо исключения получим null.
            if (car1 == null)
            {
                Console.WriteLine("Преобразование прошло неудачно");
            }
            else
            {
                Console.WriteLine("Преобразование прошло удачно");
            }

            dynamic[] arrayOfTransport = new dynamic[] { train, transport, carriage, car };
            Printer   printer          = new Printer();

            printer.IAmPrinting(train);
            printer.IAmPrinting(car);
            printer.IAmPrinting(carriage);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Transport transport = new Transport("type", 111);

            transport.DoClone();
            Transport.Car car = new Transport.Car("name");
            car.DoClone();
            Transport.Train train = new Transport.Train(222);
            train.DoClone();
            Transport.Car.Motor motor = new Transport.Car.Motor(30);
            motor.DoClone();
            Transport.Train.Motor   motor1  = new Transport.Train.Motor(40);
            Transport.Train.Express express = new Transport.Train.Express(555);
            express.DoClone();
            Transport.Train.Carriage carriage = new Transport.Train.Carriage(60);
            carriage.DoClone();
            if (train is Transport)
            {
                Console.WriteLine("Train is transport");
            }
            else
            {
                Console.WriteLine("Train is not transport");
            }
            Transport.Car car1 = transport as Transport.Car;
            if (car1 == null)
            {
                Console.WriteLine("Преобразование прошло неудачно");
            }
            else
            {
                Console.WriteLine("Преобразование прошло удачно");
            }

            dynamic[] arrayOfTransport = new dynamic[] { train, transport, carriage, car };
            Printer   printer          = new Printer();

            printer.IAmPrinting(train);
            printer.IAmPrinting(car);
            printer.IAmPrinting(carriage);
        }