}

// Удалить событие из списка, remove { int i;

for(i=0; i < 3; i++) if(evnt[i] == value) { evnt[i] = null; break;

}

if (i == 3) Console.WriteLine('Обработчик событий не найден.');

}

}

// Этот .метод вызывается для запуска событий, public void OnSomeEvent()    {

for(int i=0; i < 3; i++)

if(evnt[i] != null) evnt[i]();

}

}

// Создать ряд классов, использующих делегат MyEventHandler. class W {

public void Whandler() {

Console.WriteLine('Событие получено объектом W');

}

}

class X {

public void Xhandler() {

Console.WriteLine('Событие получено объектом X');

}

}

class Y {

public void Yhandler() {

Console.WriteLine('Событие получено объектом Y');

class Z {

public void Zhandler() {

Console.WriteLine('Событие получено объектом Z');

}

}

class EventDemo5 { static void Main() {

MyEvent evt = new MyEvent();

// Добавить обработчики в цепочку событий.

Console.WriteLine('Добавление событий.'); evt.SomeEvent += wOb.Whandler; evt.SomeEvent += xOb.Xhandler; evt.SomeEvent += yOb.Yhandler;

// Сохранить нельзя - список заполнен, evt.SomeEvent += zOb.Zhandler;

Console.WriteLine();

// Запустить события, evt.OnSomeEvent();

Console.WriteLine();

// Удалить обработчик.

Console.WriteLine('Удаление обработчика xOb.Xhandler.') ; evt.SomeEvent -= xOb.Xhandler; evt.OnSomeEvent();

Console.WriteLine();

// Попробовать удалить обработчик еще раз.

Console.WriteLine('Попытка удалить обработчик ' +

'xOb.Xhandler еще раз.'); evt.SomeEvent -= xOb.Xhandler; evt.OnSomeEvent();

Console.WriteLine();

//А теперь добавить обработчик Zhandler.

Console.WriteLine('Добавление обработчика zOb.Zhandler.'); evt.SomeEvent += zOb.Zhandler; evt.OnSomeEvent();

}

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату