Перевызов событий? - C#

Узнай цену своей работы

Формулировка задачи:

всем привет, имеется данный пример:
Листинг программы
  1. public delegate void EventDelegate();
  2. public class MyClass
  3. {
  4. public event EventDelegate myEvent = null;
  5. public void InvokeEvent()
  6. {
  7. myEvent.Invoke();
  8. }
  9. }
  10. class Program
  11. {
  12. // Методы обработчики события.
  13. static private void Handler1()
  14. {
  15. Console.WriteLine("Обработчик события 1");
  16. }
  17. static private void Handler2()
  18. {
  19. Console.WriteLine("Обработчик события 2");
  20. }
  21. static void Main()
  22. {
  23. MyClass instance = new MyClass();
  24. // Присоединение обработчиков событий. (Подписка на событие)
  25. instance.myEvent += new EventDelegate(Handler1);
  26. instance.myEvent += Handler2;
  27. // Метод который вызывает событие.
  28. instance.InvokeEvent();
  29. Console.WriteLine(new string('-', 20));
  30. // Открепляем Handler2().
  31. instance.myEvent -= new EventDelegate(Handler2);
  32. instance.InvokeEvent();
  33. // Delay.
  34. Console.ReadKey();
  35. }
  36. }
Зачем тут метод InvokeEvent, который перевызывает событие myEvent? Зачем вообще перевызывать событие? Почему не вызвать его "напрямую" - как метод

Решение задачи: «Перевызов событий?»

textual
Листинг программы
  1. protected virtual void OnTestEvent(EventArgs e) {
  2.      var testEvent = TestEvent;
  3.      
  4.      if (testEvent!= null) {
  5.           testEvent(this, e);
  6.      }
  7. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут