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

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

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

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

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

textual
Листинг программы
  1. public void InvokeEvent()
  2. {
  3. var handler=myEvent;
  4. if(handler!=null)
  5. handler.Invoke();
  6. }

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


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

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

6   голосов , оценка 4 из 5

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

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

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