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