Сообщения с тегом ‘time’
Классы 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 »
Класс sender. Как объявляются события?
Написано admin в 20 Июнь 2008 – 21:42 -Класс sender. Как объявляются события?
При проектировании класса с событиями, возможно, самое трудное – содержательная сторона дела. Какими событиями должен обладать класс, в каких методах и в какой момент зажигать то или иное событие?
Содержательную сторону будем пояснять на содержательных примерах. А сейчас рассмотрим технический вопрос: как объявляются события средствами языка С#? Прежде всего, уточним, что такое событие с программистской точки зрения. Начнем не с самого события, а с его обработчика. Обработчик события – это обычная процедура с аргументами. Понятно, что сообщение, посылаемое при зажигании события, является аналогом вызова процедуры. Поскольку сигнатура посылаемого сообщения должна соответствовать сигнатуре принимаемого сообщения, то объявление события синтаксически должно задавать сигнатуру процедуры. Read more »
Tags: Class, delegate, event, FireEventHandler, namespace, OnFire, sender, time, TownWithEvents, void
Находится в Учебник | No Comments »
