Перевызов событий? - C#
Формулировка задачи:
всем привет, имеется данный пример:
Зачем тут метод InvokeEvent, который перевызывает событие myEvent? Зачем вообще перевызывать событие? Почему не вызвать его "напрямую" - как метод?
Листинг программы
- public delegate void EventDelegate();
- public class MyClass
- {
- public event EventDelegate myEvent = null;
- public void InvokeEvent()
- {
- myEvent.Invoke();
- }
- }
- class Program
- {
- // Методы обработчики события.
- static private void Handler1()
- {
- Console.WriteLine("Обработчик события 1");
- }
- static private void Handler2()
- {
- Console.WriteLine("Обработчик события 2");
- }
- static void Main()
- {
- MyClass instance = new MyClass();
- // Присоединение обработчиков событий. (Подписка на событие)
- instance.myEvent += new EventDelegate(Handler1);
- instance.myEvent += Handler2;
- // Метод который вызывает событие.
- instance.InvokeEvent();
- Console.WriteLine(new string('-', 20));
- // Открепляем Handler2().
- instance.myEvent -= new EventDelegate(Handler2);
- instance.InvokeEvent();
- // Delay.
- Console.ReadKey();
- }
- }
Решение задачи: «Перевызов событий?»
textual
Листинг программы
- public void InvokeEvent()
- {
- var handler=myEvent;
- if(handler!=null)
- handler.Invoke();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д