Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Многоцелевая обработка события



В предыдущем примере был рассмотрен простой случай применения события с использованием только одной функции обработчика. Однако часто необходимо в ответ на какое-то событие использовать несколько обработчиков. Рассмотрим конкретный пример.

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...