Метод подписывается на делегат, а не на event - C#
Формулировка задачи:
Здравствуйте, в книгах написано, что делегат нужен для event: создаётся делегат, потом создаётся event, затем подписываем метод на event. В нижеописанном коде, вызывается метод через делегат(пропускается стадия создания event). Как такое может быть?
Листинг программы
- class GameContext
- {
- static void Main(string[] args)
- {
- Action<string> _action; // делегат
- _action = Method; // подписываем метод на делегат
- _action("Hello"); // выполняем этот метод через делегат
- void Method(string arg)
- {
- Console.WriteLine(arg);
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Метод подписывается на делегат, а не на event»
textual
Листинг программы
- class Foo
- {
- public Action Delegate { get; set; }
- public event Action Event;
- }
- class Program
- {
- static void Main()
- {
- var foo = new Foo();
- foo.Delegate = null; // OK
- foo.Event = null; // Error
- foo.Delegate(); // OK
- foo.Event(); // Error
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д