.NET(C#)事件 - 自定义EventArgs问题

Jef*_*rey 5 .net c# events

我有许多C#自定义事件与树中选择的项目相关联,然后使用上下文菜单触发对所选项目的某些操作.我开始为每个自定义事件创建一个单独的基于EventArgs的类,以打包事件的必要数据.

在后视中,我意识到我的大多数(可能是所有)自定义事件都需要至少传递树选择所代表的底层对象列表.有些事件也可能需要额外的数据.

考虑到这一点,我想知道以下任何一种是否是可接受的做法?

  • 对多个事件使用相同的基于EventArgs的自定义类(那些只需要传递对象列表的事件).显然,这应该可行,但似乎脱离了一些用于连接事件机制的推荐命名约定.

  • 创建一个基类,它包装我经常需要的对象列表,然后从中派生其他类,因为需要额外的数据.

  • 也许还有别的什么呢?

目前,我只有少数自定义事件,但需要添加更多.由于我看到每个事件所需的数据都出现了一种模式,我希望在继续之前有一个更好的计划.

谢谢你的建议.

Mat*_*ira 5

我以前做过这条路.我第二次想到了一个包含公共数据的基本事件类.如果没有事件将直接使用它,请将基类设置为内部,以避免向用户公开不必要的对象.拥有基类还允许您以后添加更多事件数据.由于该类是内部的,因此它的用户在外部不受更改的影响.