нескольким объектам реагировать на уведомление о событии. Ниже приведен пример групповой адресации события.
// Продемонстрировать групповую адресацию события, using System;
// Объявить тип делегата для события, delegate void MyEventHandler() ;
// Объявить делегат, содержащий событие, class MyEvent {
public event MyEventHandler SomeEvent;
// Этот метод вызывается для запуска события, public void OnSomeEvent() {
if(SomeEvent != null)
SomeEvent();
}
}
class X {
public void XhandlerO {
Console.WriteLine('Событие получено объектом класса X');
}
class Y {
public void YhandlerO {
Console.WriteLine('Событие получено объектом класса Y');
}
}
class EventDemo2 {
static void Handler() {
Console.WriteLine('Событие получено объектом класса EventDemo');
}
static void Main() {
MyEvent evt = new MyEvent ();
X xOb = new X();
Y yOb = new Y();
// Добавить обработчики в список событий.
evt.SomeEvent += Handler;
evt.SomeEvent += xOb.Xhandler;
evt.SomeEvent += yOb.Yhandler;
// Запустить событие, evt.OnSomeEvent() ;
Console.WriteLine() ;
// Удалить обработчик.
evt.SomeEvent -= xOb.Xhandler;
evt.OnSomeEvent() ;
}
}
При выполнении кода этого примера получается следующий результат.
Событие получено объектом класса EventDemo Событие получено объектом класса X Событие получено объектом класса Y
Событие получено объектом класса EventDemo Событие получено объектом класса Y
В данном примере создаются два дополнительных класса, X и Y, в которых также определяются обработчики событий, совместимые с делегатом MyEventHandler. Поэтому эти обработчики могут быть также включены в цепочку событий. Обратите внимание на то, что обработчики в классах X и Y не являются статическими. Это означает, что сначала должны быть созданы объекты каждого из этих классов, а затем в цепочку событий должны быть введены обработчики, связанные с их экземплярами. Об отличиях между обработчиками экземпляра и статическими обработчиками речь пойдет в следующем разделе.
Методы экземпляра в сравнении со статическими методами в качестве обработчиков событий
Методы экземпляра и статические методы могут быть использованы в качестве обработчиков событий, но между ними имеется одно существенное отличие. Когда
