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 }
//Обработчик события ПОСАДКА public void BoardingHandler(object sender, BoardingEventArgs arg) { this.ChangeCourse(arg.Course); this.ChangeHight(arg.Height); this.ChangeSpeed(arg.Speed); }
// Метод, запускающий событие ПОСАДКА public void OnBoarding(BoardingEventArgs arg) { Console.WriteLine($"\n*********************Самолет\0{this.ModelAir}\0идет на посадку!!"); Boarding?.Invoke(this, arg); }