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

时间:2011-07-25 13:27:20

标签: c# .net event-handling eventargs

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

3 个答案:

答案 0 :(得分:28)

没有继承EventArgs,但它允许使用你的类的人使用和处理泛型*Handler(object sender, EventArgs e)声明。 如果您不从EventArgs继承,则必须使用明确键入的

*Handler(object sender, YairsFakeEventArgs e)

仅使用自定义代理也是如此,但它们明显不同。

答案 1 :(得分:18)

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

答案 2 :(得分:6)

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