【发布时间】:2010-11-16 12:20:57
【问题描述】:
我想知道是否有人可以告诉我与 += 运算符等效的原始代码,用于向事件添加方法。我很好奇它从技术角度是如何工作的。
【问题讨论】:
标签: c# events syntactic-sugar
我想知道是否有人可以告诉我与 += 运算符等效的原始代码,用于向事件添加方法。我很好奇它从技术角度是如何工作的。
【问题讨论】:
标签: c# events syntactic-sugar
event 定义了一组方法,包括“add”和“remove”(与属性定义“get”和“set”的方式相同)。这实际上是:
obj.add_SomeEvent(handler);
在内部,事件可以做任何事情;有两种常见情况:
EventHandlerList 实现有了委托,它有效地使用了Delegate.Combine:
handler = Delegate.Combine(handler, value);
EventHandlerList 有一个关键对象:
Events.AddHandler(EventKey, value);
【讨论】: