Анонимный метод и событие. Почему оно работает?
Господа, вопрос может показаться странным, но я случайно написал код с ошибкой, однако он работает. Почему?
using System;
delegate void Del(int y);
class a
{
public event Del CorrectXEv;
public int x = 99;
public void CorrectX(int y)
{
x = y;
if (CorrectXEv != null) CorrectXEv(5);
}
}
class b
{
static void Main()
{
a A = new a();
A.CorrectXEv += delegate { Console.WriteLine("X is correcting"); };
A.CorrectX(Convert.ToInt32(Console.ReadLine()));
}
}
Ведь сигнатура анонимного метода не соответствует сигнатуре делегата, почему код выполняется?
Источник: Stack Overflow на русском