【发布时间】:2011-09-07 14:30:17
【问题描述】:
三个相关的成语:event、delegate、event-handler。我总是对谁被“添加”到谁感到困惑。
event += handler
event += delegate
handler += delegate
据我所知:
- 委托:指向具有已知签名的函数的指针。
- 事件处理程序:注册到事件的委托。基本上和delegate是一样的吗?
- 事件:使用 event() 调用事件时执行的委托\事件处理程序列表
更让我困惑的是MSDN中的这个签名:
public delegate void EventHandler(Object sender, EventArgs e)
【问题讨论】:
-
如果我没记错的话,事件“只是”具有多个目标的专门代表。虽然没有方便的 C# 规范来查找它。
-
@Michael:我赞同你的意见。
EventHander只是一个代表,如Action、TimerCallback和许多其他人。区别在于MulticastDelegate用于将事件分派给许多事件处理委托。
标签: c# events event-handling