可能的重复项:
没有事件参数的事件处理程序类型
我正在通过我的项目创建事件处理程序和相应的事件参数(:EventArgs
)。但我想知道我是否需要这个EventArgs
对象。正如我经常在这种EventArgs
财产上所做的那样,对应于这个特定的EventHandler
.
为什么我需要一个可以直接使用该值的 EventArgs 对象?
我有时理解使用这样的特定对象容器的价值。但大多数时候我只需要传递一两个对象。例:为什么PropertyChangedEventHandler
使用字符串就足够了的 EventArgs 来困扰自己?这不会带来开销吗?
接受两个参数使事件处理程序统一是一种 .NET 约定:事件的源 ( sender
) 和包装在通用 EventArgs
对象中的事件参数。
为什么 PropertyChangedEventHandler 使用 EventArgs 来困扰自己 一个字符串就足够了?这不会带来开销吗?
否,因为无论如何您都会传递引用,因此实际上不会移动任何数据。
一般来说,我的建议是使用观察者模式。
另外:没有事件参数的事件处理程序类型