Перевызов событий? - 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
Листинг программы
protected virtual void OnTestEvent(EventArgs e) { var testEvent = TestEvent; if (testEvent!= null) { testEvent(this, e); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д