Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В предыдущем примере был рассмотрен простой случай применения события с использованием только одной функции обработчика. Однако часто необходимо в ответ на какое-то событие использовать несколько обработчиков. Рассмотрим конкретный пример.
using System;
public delegate void SampleDelegate(); // Объявление делегата
public class SampleClass // Объявление класса, генерирующего событие
{
public event SampleDelegate SampleEvent;// Объявление события типа делегата
public void onEvent() // Метод, генерирующий событие
{
if (SampleEvent!= null) // Проверка наличия подписчиков
SampleEvent(); // Генерирование события
}
}
// Тестирующее приложение
public class TestApp
{
private static void handler1() // Первый метод обработки события
{ Console.WriteLine("Произошло событие: Первый обработчик"); }
private static void handler2() // Второй метод обработки события
{ Console.WriteLine("Произошло событие: Второй обработчик"); }
static public void Main ()
{
SampleClass sc = new SampleClass();
sc.SampleEvent += new SampleDelegate(handler1);
sc.SampleEvent += new SampleDelegate(handler2);
sc.onEvent();
}
}
Вначале, как и в предыдущем примере, объявляется делегат SampleDelegate, задающий сигнатуру функций обработчиков события. Затем следует объявление класса, способного генерировать некоторое событие. И, наконец, объявляется класс тестирующего приложения, который содержит объявление двух статических методов – обработчиков события handler1() и handler2() и метод Main(). В методе Main (), прежде всего, создается объект sc, способный генерировать событие. После чего осуществляется "подписка" двух статических методов реагировать на возникновение события SampleEvent в объекте sc.
Дата публикования: 2015-10-09; Прочитано: 153 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!