Сообщения с тегом ‘FireEventHandler’
Проект “Город и его службы”
Написано admin в 20 Июнь 2008 – 21:47 -Проект “Город и его службы”
Завершить лекцию о событиях хочется содержательным учебным проектом, в котором моделируется жизнь города, происходящие в нем события и реакция на них городских служб. Наша главная цель в данном проекте – еще раз показать, как возникающее событие, в данном случае – пожар в одном из домов города, обрабатывается по-разному городскими службами – пожарными, милицией, скорой помощью. Конечно, все упрощено, в реальном городе событиями являются не только пожары и преступления, но и более приятные ситуации: день города, открытие фестивалей и выставок, строительство новых театров и институтов.
Начнем с описания класса, задающего наш город. Этот класс уже появлялся и в этой, и в предыдущей лекции, здесь его описание будет расширено. Начнем со свойств класса: Read more »
Tags: base, Build, BuildingNumber, Fire, FireEventArgs, FireEventHandler, fireman, LifeOurTown, NewTown, Override, permit, Police, receiver, TownSize, void
Находится в Учебник | No Comments »
Классы с событиями, допустимые в каркасе .Net Framework
Написано admin в 20 Июнь 2008 – 21:43 -Классы с событиями, допустимые в каркасе .Net Framework
Если создавать повторно используемые компоненты с событиями, работающие не только в проекте C#, то необходимо удовлетворять некоторым ограничениям. Эти требования предъявляются к делегату; они носят, скорее, синтаксический характер, не ограничивая существа дела.
Перечислю эти ограничения:
- делегат, задающий тип события, должен иметь фиксированную сигнатуру из двух аргументов: delegate <Имя_делегата> (object sender, <Тип_аргументов> args);
- первый аргумент задает объект sender, создающий сообщение. Второй аргумент args задает остальные аргументы – входные и выходные, – передаваемые обработчику. Тип этого аргумента должен задаваться классом, производным от встроенного в .Net Framework класса EventArgs. Если обработчику никаких дополнительных аргументов не передается, то следует просто указать класс EventArgs, передавая null в качестве фактического аргумента при включении события;
- рекомендуемое имя делегата – составное, начинающееся именем события, после которого следует слово EventHandler, например, FireEventHandler. Если никаких дополнительных аргументов обработчику не передается, то тогда можно вообще делегата не объявлять, а пользоваться стандартным делегатом с именем EventHandler.
Tags: delegate, EventArgs, EventHandler, FireEventHandler, Framework, NET, null, sender
Находится в Учебник | No Comments »
Классы receiver. Как обрабатываются события
Написано admin в 20 Июнь 2008 – 21:43 -Классы receiver. Как обрабатываются события
Объекты класса Sender создают события и уведомляют о них объекты, возможно, разных классов, названных нами классами Receiver, или клиентами. Давайте разберемся, как должны быть устроены классы Receiver, чтобы вся эта схема заработала.
Понятно, что класс receiver должен:
- иметь обработчик события – процедуру, согласованную по сигнатуре с функциональным типом делегата, который задает событие;
- иметь ссылку на объект, создающий событие, чтобы получить доступ к этому событию – event-объекту;
- уметь присоединить обработчик события к event-объекту. Это можно реализовать по-разному, но технологично это делать непосредственно в конструкторе класса, так что когда создается объект, получающий сообщение, он изначально готов принимать и обрабатывать сообщения о событиях. Вот пример, демонстрирующий возможное решение проблем: Read more »
Tags: event, Fire, FireEvent, FireEventHandler, FireMen, GoOut, MyNativeTown, receiver, time, WriteLine
Находится в Учебник | No Comments »
