为什么不使用自定义类而不是继承EventArgs类

Yai*_*vet 21 .net c# event-handling eventargs

我想知道为什么我应该使用从类继承的EventArgs类而不是使用在传递事件数据时为我做同样工作的自定义类?

Dea*_*nna 28

你不具备从继承EventArgs,但它允许使用的类人使用和处理一般的*Handler(object sender, EventArgs e)声明.如果你不继承EventArgs,那么他们必须使用显式类型

*Handler(object sender, YairsFakeEventArgs e)
Run Code Online (Sandbox Code Playgroud)

仅使用自定义委托也是如此,但它们明显不同.


Fre*_*örk 18

因为event-args类将与接受EventArgs对象的任何其他函数兼容.

  • @Yair:是的,这是惯例. (2认同)

Dar*_*rov 6

因为这是在.NET中执行此操作的标准和最惯用的方法.整个ASP.NET和WinForms事件模型依赖于这些约定.如果另一个开发人员读取您的代码,他将更容易理解它,因为这是标准.据说你当然可以使用你喜欢的任何课程.