示例#1
0
        public static void Main()
        {
            Aircraft aircraft1 = new Aircraft();

            aircraft1.ShowInfoAir();

            // Сериализация созданного экземпляра обьекта Aircraft
            Aircraft.Serialize(aircraft1);
            // Десериализация экземпляра обьекта Aircraft
            aircraft1 = Aircraft.DeSerialize();

            // Подписка на событие Takeoff
            aircraft1.Takeoff += new TakeoffEventHandler(aircraft1.TakeoffHandler);
            // Взлет - вызов события Takeoff
            TakeoffEventArgs argTakeoff = new TakeoffEventArgs(250, 5, 600);

            aircraft1.OnTakeoff(argTakeoff);
            aircraft1.ShowInfoAir();

            // ПОПЫТКА ВЫЗВАТЬ СЕРИАЛИЗАЦИЮ ПОСЛЕ ОБРАЩЕНИЯ К ДЕЛЕГАТУ СОБЫТИЯ ВЫЗЫВАЕТ ОШИБКУ :
            // 'System.Runtime.Serialization.SerializationException: 'Serializing delegates is not supported on this platform.'
            //НЕ ПОНИМАЮ, ПОЧЕМУ, ВЕДЬ ПРИ ТАКОЙ ЖЕ ПРОЦЕДУРЕ СЕРИАЛИЗАЦИИ В XML-ФОРМАТЕ ПОДОБНОЕ НЕ ПРОИСХОДИТ???

            // Сериализация измененного экземпляра обьекта Aircraft
            //Aircraft.Serialize(aircraft1);                            //ЗАКОММЕНТИРОВАННО ИЗ-ЗА EXCEPTION
            // Десериализация измененного экземпляра обьекта Aircraft
            //aircraft1 = Aircraft.DeSerialize();                       //ЗАКОММЕНТИРОВАННО ИЗ-ЗА EXCEPTION

            // Подписка на событие Boarding
            aircraft1.Boarding += new BoardingEventHandler(aircraft1.BoardingHandler);
            // Посадка - вызов события Boarding
            BoardingEventArgs argBoard = new BoardingEventArgs(120);

            aircraft1.OnBoarding(argBoard);
            aircraft1.ShowInfoAir();

            // Сериализация измененного экземпляра обьекта Aircraft
            //Aircraft.Serialize(aircraft1);                             //ЗАКОММЕНТИРОВАННО ИЗ-ЗА EXCEPTION
            // Десериализация измененного экземпляра обьекта Aircraft
            //aircraft1 = Aircraft.DeSerialize();                        //ЗАКОММЕНТИРОВАННО ИЗ-ЗА EXCEPTION
        }
示例#2
0
 //Обработчик события ПОСАДКА
 public void BoardingHandler(object sender, BoardingEventArgs arg)
 {
     this.ChangeCourse(arg.Course);
     this.ChangeHight(arg.Height);
     this.ChangeSpeed(arg.Speed);
 }
示例#3
0
 // Метод, запускающий событие  ПОСАДКА
 public void OnBoarding(BoardingEventArgs arg)
 {
     Console.WriteLine($"\n*********************Самолет\0{this.ModelAir}\0идет на посадку!!");
     Boarding?.Invoke(this, arg);
 }