我应该使用EventArgs还是简单的数据类型?

Rya*_*hel 6 .net c# events standards coding-style

我正在创建一个有趣和实践的库,我想知道,在举办活动时,如何选择传递自己的EventArgs衍生物或仅仅是数据类型.

例如,在我的库中我有这样的东西:

public delegate void LostConnectionEventHandler(string address);
public delegate void MessageReceieved(byte[] bytes);
Run Code Online (Sandbox Code Playgroud)

这是什么标准做法?我应该更换string address使用ConnectionEventArgs,并byte[] bytesMessageEventArgs

我知道其中任何一个工作得很好而且这个问题可能是主观的但我仍然对高级程序员在决定是否包含他们自己的EventArgs或仅直接传递数据时所经历的思考过程感到好奇.

谢谢!

Kir*_*huk 8

.NET Framework准则指出用于事件的委托类型应该采用两个参数,一个"对象源"参数指示事件的来源,一个"e"参数封装有关该事件的任何其他信息."e"参数的类型应该来自EventArgs类.对于不使用任何其他信息的事件,.NET Framework已经定义了适当的委托类型:EventHandler.

参考:http://msdn.microsoft.com/en-us/library/aa645739(v = vs.71).aspx

另一个有用的信息:http://msdn.microsoft.com/en-us/library/ms229011.aspx

  • 这已经过时了.当前的指导是使用通用的EventHandler <>委托类型. (4认同)