【发布时间】:2011-04-22 07:13:52
【问题描述】:
我讨厌 EventHandler。如果我想对它做任何事情,我讨厌我必须投射sender。我讨厌我必须创建一个继承自 EventArgs 的新类才能使用 EventHandler<T>。
我一直被告知EventHandler 是传统,等等等等。但我找不到为什么这个教条仍然存在的原因。
是否有理由让新的代表成为一个坏主意:
delegate void EventHandler<TSender, T>(TSender sender, T args);
这样sender 将是类型安全的,我可以传递我想要的任何东西作为参数(如果我愿意,包括自定义 EventArgs)。
【问题讨论】:
-
那么你也可以只使用 Action
作为你的委托。 -
是的,非常正确,所以我将扩展我的问题:为什么不使用 Action
?
标签: c# generics event-handling