Прием поступающих событий

Прием поступающих событий

Использование событий в C# позволяет также упростить регистрацию обработчиков событий вызывающей стороны. Вместо необходимости указывать пользовательские вспомогательные методы, вызывающая сторона просто использует операции += и -= (которые в фоновом режиме "подключают" add_XXX() или remove_XXX()). Если вы хотите регистрировать событие, то следуйте показанному ниже шаблону.

// ОбъектнаяПеременная.ИмяСобытия +=

// new СоответствующийДелегат(вызываемаяФункция);

Car.EngineHandler d = new Car.EngineHandler(CarExplodedEventHandler) myCar.Exploded += d;

Чтобы отменить привязку к источнику событий, используйте операцию -=.

// ОбъектнаяПеременная.ИмяСобытия -= объектДелегата;

myCar.Exploded -= d;

С учетом этих соответствующих ожиданиям шаблонов, вот как должен выглядеть модифицированный метод Main(), в котором используется синтаксис регистрации событий C#.

class Program {

 statiс vоid Main(string[] args) {

  Console.WriteLine("***** События *****");

  Car c1 = new Car("SlugBug", 100, 10);

  // Регистрация обработчиков событий.

  сl.AboutToBlow += new Car.CarEventHandler(CarIsAlmostDoomed);

  cl.AboutToBlow += new Car.CarEventHandler(CarAbautToBlow);

  Car.CarEventHandler d = new Car.CarEventHandler(CarExploded);

  cl.Exploded += d;

  Console.WriteLine(" ***** Ускорение *****);

  for(int i = 0; i ‹ 6; i++) cl.Accelerate(20);

  // Удаление метода CarExploded из списка вызовов.

  cl.Exploded -= d;

  Console.WriteLine(" ***** Ускорение *****");

  for(int i = 0; i ‹ 6; i++) cl.Accelerate(20);

  Console.ReadLine();

 }

 public static void CarAboutToBlow(string msg) { Console.WriteLine(msg); }

 public static void CarIsAlmostDoomed(string msg) { Console.WriteLine("Critical Message from Car: {0}", msg); }

 public static void CarExploded(string msg) { Console.WriteLine(msg); }

}

Исходный код. Проект CarEvents размещен в подкаталоге, соответствующем главе 8.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Прием и отправка сообщений

Из книги Мир общения: ICQ автора Леонтьев Виталий Петрович

Прием и отправка сообщений С приемом сообщений по «аське» проблем возникнуть не должно: в момент, когда на ваш компьютер поступает письмо от одного из пользователей ICQ, цветок программы в системном трее сменяется на значок подмигивающей записки. Щелкните по нему – и


Глава 1 ПРИЕМ КАБЕЛЬНЫХ И ЭФИРНЫХ ТЕЛЕКАНАЛОВ

Из книги Компьютер + TV: телевидение на ПК автора Гольцман Виктор Иосифович

Глава 1 ПРИЕМ КАБЕЛЬНЫХ И ЭФИРНЫХ ТЕЛЕКАНАЛОВ Наверное, у каждого человека сегодня есть дома телевизор, а чаще их даже несколько. Многие любят смотреть телепередачи, сидя в кресле, расслабляясь после рабочего дня. Примерно у половины владельцев телевизоров дома есть еще и


Глава 5 ПРИЕМ СПУТНИКОВЫХ ТЕЛЕКАНАЛОВ

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Глава 5 ПРИЕМ СПУТНИКОВЫХ ТЕЛЕКАНАЛОВ Собрав и настроив систему для просмотра телевидения на домашнем компьютере, осталось разобраться с программами, позволяющими просматривать видео на компьютере, – с виртуальными телевизорами. Обычно в комплекте с DVB-тюнером идет


Прием и просмотр сообщений

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Прием и просмотр сообщений Сразу же после запуска Почта Windows проверит, есть ли соединение с Интернетом. При его отсутствии будет предложено подключиться к Сети или работать в автономном режиме. После установки соединения программа проверит наличие новой корреспонденции


Чтение поступающих данных cookie

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

Чтение поступающих данных cookie Напомним, что именно браузер отвечает за возможность доступа к перманентным данным cookie во время обращения к ранее посещавшейся странице. Для взаимодействия с поступающими данными cookie в ASP.NET предусмотрено свойство HttpRequest.Cookies. Например, если


Глава 11 Отправка и прием факсов

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Глава 11 Отправка и прием факсов Лучше всего с отправкой и приемом факсов справляются, конечно, факсовые аппараты. Однако если вам неожиданно понадобилось, например, принять факс, а такого устройства нет, можно вполне использовать для этой цели возможности компьютера, тем


Прием клиентских запросов соединения

Из книги Тайм-менеджмент для системных администраторов автора Лимончелли Томас

Прием клиентских запросов соединения Наконец, сервер может ожидать соединения с клиентом, используя функцию accept, возвращающую новый подключенный сокет, который будет использоваться в операциях ввода/вывода. Заметьте, что исходный сокет, который теперь находится в


Секретный прием

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Секретный прием Скажу вам по секрету: нужно записывать свои цели. Пока они находятся у вас в голове, они не так конкретны, как вам кажется. Они слишком туманны. Невозможно оценить их, рассказать о них кому-нибудь. С ними невозможно работать.Процесс изложения на бумаге


Прием и обработка SMS-сообщений

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Прием и обработка SMS-сообщений Итак, мы научились отправлять SMS-сообщения из своей программы. Но было бы неплохо научить приложения принимать подобные сообщения. Для приема сообщений существует пространство имен MessageInterception, которое находится в сборке


Прием импульса

Из книги Инфобизнес за один день автора Ушанов Азамат

Прием импульса Прием импульса выполняется очень просто: короткое, четко определенное сообщение передается функции MsgReceive(), как будто поток отправил обычное стандартное сообщение. Единственное различие состоит в том, что вы не сможете применить функцию MsgReply() к такому


Прием платы за товары и услуги в Интернете

Из книги Социальные сети без страха для тех, кому за... автора Виннер Марина

Прием платы за товары и услуги в Интернете Скачайте эту интеллект-карту по адресу: http://smartinfomarketing.ru/book-leads.htmТеперь давайте поговорим об организации приема оплаты за ваши товары, коучинги, тренинги, интернет-семинары. Пройдемся по основным


15.3. Слушание уведомлений, поступающих с клавиатуры, и реагирование на них

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

15.3. Слушание уведомлений, поступающих с клавиатуры, и реагирование на них Постановка задачи Мы позволяем пользователю вводить какой-либо текст в нашем графическом интерфейсе. Для этого применяется определенный компонент, например текстовое поле или текстовый вид,


Прием «кулисы»

Из книги Социальные сети. ВКонтакте, Facebook и другие… автора Леонтьев Виталий Петрович

Прием «кулисы» Этот эффектный композиционный прием заключается в том, что объект помещают в своего рода «рамку». Очень интересные фотографии получаются, когда съемка ведется из арки ворот, из пещеры, да и просто сквозь ветви куста, – при этом объект получается


Прием и отправка сообщений

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Прием и отправка сообщений Общаться, общаться! И немедленно. Благо именно эта функция в программе главная… А сам процесс общения просто до банальности. Хотите написать письмо – щелкаете по имени нужного контакта. Можно вызвать окно сообщений и из контекстного меню


Передача и прием дейтаграмм UDP

Из книги автора

Передача и прием дейтаграмм UDP Класс QUdpSocket может использоваться для отправки и приема дейтаграмм UDP. UDP — это ненадежный, ориентированный на дейтаграммы протокол. Некоторые приложения применяют протокол UDP, поскольку с ним легче работать, чем с протоколом TCP. По протоколу