代码相当于+ =对事件的赋值

时间:2009-08-03 21:05:21

标签: c# events syntactic-sugar

我想知道是否有人可以告诉我等效于+ =运算符的原始代码,用于向事件添加方法。我很好奇它从技术的角度来看它的工作原理。

1 个答案:

答案 0 :(得分:10)

event定义了一组方法,包括“添加”和“删除”(与属性定义“get”和“set”的方式相同)。对此有效:

obj.add_SomeEvent(handler);

在内部,活动可以做任何事情;有两种常见情况:

  • 具有委托字段的事件(包括“类字段”事件)
  • EventHandlerList实施

使用委托,它有效地使用Delegate.Combine

handler = Delegate.Combine(handler, value);

EventHandlerList有一个关键对象:

Events.AddHandler(EventKey, value);