关于.NET中的自定义事件,传递事件参数的首选设计模式是什么?对于每个可以引发的事件,您是否应该有一个单独的EventArgs派生类,或者,如果事件都是由同一个类中的事件引发的,则可以对这些事件使用单个类?
发布于 2008-09-19 09:40:42
您不需要为每个事件都有一个单独的EventArgs派生类。使用现有的EventArgs派生类而不是重复发明轮子是完全可以接受的,甚至是可取的。
这些可以是现有的框架类(例如,如果您想要做的只是给事件处理程序提供取消操作的可能性,则为System.Component.CancelEventArgs。
或者,如果有特定于应用程序的数据要传递给事件处理程序,则可以创建自己的EventArgs派生类。如果来自同一个类或不同类的两个事件正在发送相同的数据,那么它们没有理由不使用相同的EventArgs派生类。
发布于 2008-09-19 06:06:24
我通常会创建一个基本的EventArgs类,其中包含每个事件的公共数据。如果某个特定事件有更多相关数据,我将为该事件创建一个子类;否则,我将只使用基类。
发布于 2008-09-19 06:05:17
这取决于事件是什么,但在很大程度上,为了使用您的事件的人,创建一个从EventArgs派生的自定义类。
https://stackoverflow.com/questions/102052
复制相似问题