Недавно мне стало интересно, есть ли существенная разница между этим кодом:
public event EventHandler<MyEventArgs> SomeEvent;
И этот:
public delegate void MyEventHandler(object sender, MyEventArgs e);
public event MyEventHandler SomeEvent;
Они оба делают то же самое, и я не мог сказать никакой разницы. Хотя я заметил, что в большинстве классов .NET Framework используется специальный делегат обработчика событий для своих событий. Есть ли конкретная причина для этого?