关于事件的'对象'参数的最佳实践

时间:2010-06-16 23:30:50

标签: c# events event-handling

此问题仅与任何事件处理程序中的第一个参数有关,即'object'。

我很想知道在举办活动时应该采用的最佳做法。

当事件源自我的对象本身时,情况很简单,在这种情况下我可以简单地调用... RaiseSomeEvent(this,someArgs)。

如果我的对象充当中间人,应该做什么,而事件来自其他一些对象,中间人只负责再次提升它? 在这种情况下,我将有两个选择:

1)RaiseSomeEvent(sender,someArgs)//只传递源对象传递的对象。 2)RaiseSomeEvent(this,someArgs)

关于事件的'对象'参数是否有任何规则?比如,它应该引用源对象(触发此事件的对象),或者我可以按照我的要求进行操作?

1 个答案:

答案 0 :(得分:3)

我会在这里使用框架来获取灵感。

通常情况下,最简单的情况是 - 对象是引发事件的对象。

但是,有些情况下,对象“过滤”事件并在框架中充当中间人。想到的情况是WPF中的路由事件 -

在这种情况下,Framework使用在EventArgs中添加属性的方法来指定原始对象,并对事件使用“this”。有关详细信息,请参阅RoutedEventArgs.OriginalSource