.NET 2.0 добавил тип делегата EventHandler<TArgs>
для упрощения процесса создания пользовательских событий; вместо того, чтобы определять класс EventArgs
и соответствующий ему делегат (например, MyEventArgs
и MyEventHandler
), вам нужно написать только класс args.
Помня об этом, почему этот тип делегата почти не встречается в .NET Framework? Я знаю, что большинство основных API-интерфейсов были разработаны до того, как появились дженерики, но даже в новых частях структуры, таких как WPF, они решили явно определять типы делегатов; например RoutedEventHandler
вместо EventHandler<RoutedEventArgs>
.
Есть ли что-то по своей сути неправильно с делегатом обработчика генерических событий? Я часто использую его, и я беспокоюсь, что мой код выглядит очень неуместным по сравнению со встроенными классами.