18c0693f

Классы receiver. Как обрабатываются события


Объекты класса Sender создают события и уведомляют о них объекты, возможно, разных классов, названных нами классами Receiver, или клиентами. Давайте разберемся, как должны быть устроены классы Receiver, чтобы вся эта схема заработала.

Понятно, что класс receiver должен:

public class FireMen { private TownWithEvents MyNativeTown; public FireMen(TownWithEvents TWE) { this.MyNativeTown=TWE; MyNativeTown.FireEvent += new FireEventHandler(FireHandler); } private void FireHandler(object Sender, int time, int build) { Console.WriteLine("Fire at day {0}, in build {1}!", time, build); } public void GoOut() { MyNativeTown.FireEvent -= new FireEventHandler(FireHandler); } }//FireMan

В классе Fireman есть ссылка на объект класса TownWithEvents, создающий события. Сам объект передается в конструкторе класса. Здесь же происходит присоединение обработчика события к event-объекту. Обработчик события FireHandler выводит сообщение на консоль.