Вам определенно не нужен ваш собственный тип делегата - вы можете использовать EventHandler<TEventArgs>
, где TEventArgs
- ваш конкретный EventArgs
подкласс.
Восстановление большого беспорядка всегда отнимает много времени и раздражает. Если вы перейдете к использованию групповых преобразований методов, это может упростить в будущем:
// This...
foo.SomeEvent += new MyCustomEventHandler(SomeMethod);
// becomes this..
foo.SomeEvent += SomeMethod;
Затем, если тип SomeEvent
изменится, вы можете изменить SomeMethod
, и подписка будет работать, без необходимости повторного изменения.
Нужно ли вам несколько разных EventArgs
подтипов - это другой вопрос, и невозможно сказать, не зная о вашей конкретной ситуации. Если вам нужно передать большое количество информации, это может иметь смысл.