Метод подписывается на делегат, а не на event - C#

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

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

Здравствуйте, в книгах написано, что делегат нужен для event: создаётся делегат, потом создаётся event, затем подписываем метод на event. В нижеописанном коде, вызывается метод через делегат(пропускается стадия создания event). Как такое может быть?
Листинг программы
  1. class GameContext
  2. {
  3. static void Main(string[] args)
  4. {
  5. Action<string> _action; // делегат
  6. _action = Method; // подписываем метод на делегат
  7. _action("Hello"); // выполняем этот метод через делегат
  8.  
  9. void Method(string arg)
  10. {
  11. Console.WriteLine(arg);
  12. Console.ReadLine();
  13. }
  14. }
  15. }

Решение задачи: «Метод подписывается на делегат, а не на event»

textual
Листинг программы
  1. class Foo
  2. {
  3.     public Action Delegate { get; set; }
  4.     public event Action Event;
  5. }
  6.  
  7. class Program
  8. {
  9.     static void Main()
  10.     {
  11.         var foo = new Foo();
  12.  
  13.         foo.Delegate = null; // OK
  14.         foo.Event = null; // Error
  15.  
  16.         foo.Delegate(); // OK
  17.         foo.Event(); // Error
  18.     }
  19. }

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


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

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

12   голосов , оценка 3.917 из 5

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

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

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