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

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

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

всем привет, имеется данный пример:
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();
        }
    }
Зачем тут метод InvokeEvent, который перевызывает событие myEvent? Зачем вообще перевызывать событие? Почему не вызвать его "напрямую" - как метод

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

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

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


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

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

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