避免大量自定义EventArgs?

Bri*_*tiz 4 .net c# events

我正在重构的类库有大量事件(超过50个),每个事件都有自己的Delegate,尽管许多事件具有相同的参数.我开始将它们全部切换为使用EventHandler和自定义EventArgs,但事实证明它很乏味且耗时.

当你有大量的事件时,是否有更简单的方法来处理这种情况?

Jon*_*eet 6

你当然不需要你自己的委托类型-您可以使用EventHandler<TEventArgs>这里TEventArgs是你的具体EventArgs子类.

重构一个大混乱总是耗时且烦人的.如果您更改为使用方法组转换,则可以在将来更轻松:

// This...
foo.SomeEvent += new MyCustomEventHandler(SomeMethod);

// becomes this..
foo.SomeEvent += SomeMethod;
Run Code Online (Sandbox Code Playgroud)

然后,如果SomeEvent更改类型,您可以更改SomeMethod,订阅将正常工作,而无需再次更改.

你是否需要几种不同的EventArgs亚型是另一回事 - 如果不了解你的具体情况就不可能说.如果您需要传递各种各样的信息,它可能确实有意义.