Метод подписывается на делегат, а не на 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
    }
}

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


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

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

12   голосов , оценка 3.917 из 5
Похожие ответы