没有EventArgs的事件处理程序是否正常?

时间:2012-10-05 07:42:21

标签: c# event-handling

  

可能重复:
  EventHandler type with no event args

我正在通过我的项目创建事件处理程序和相应的事件args(:EventArgs)。但我想知道我是否需要这个EventArgs对象。正如我在EventArgs属性中经常出现的那样,对应于此特定EventHandler

为什么我需要一个可以直接使用该值的EventArgs对象?

我理解有时使用这样的特定对象容器的价值。但大多数时候我只需要传递一个或两个对象。 示例:为什么PropertyChangedEventHandler使用一个String就足够的EventArgs来阻止自己?这不会带来开销吗?

2 个答案:

答案 0 :(得分:1)

我想这是一个.NET约定,通过接受两个参数来使事件处理程序统一:事件的来源(sender)和包含在通用EventArgs对象中的事件args。

  

为什么PropertyChangedEventHandler使用EventArgs来阻止自己   一个字符串就足够了?这不会带来开销吗?

不,因为您无论如何都要传递引用,因此实际上没有数据被移动。

答案 1 :(得分:0)

一般来说,我的建议是使用Observer pattern

另外:EventHandler type with no event args