c# - 是否有令人信服的理由在声明事件时使用 EventHandler<T> 委托(delegate)而不只是 Action<T>?

标签 c# .net events delegates

当我声明一个事件时,我一直在使用 Action委托(delegate)或Action<T, ...>如果事件处理程序有参数,则委托(delegate)。我最近注意到 EventHandler 的存在委托(delegate),它需要一个继承 EventArgs 的类型参数.后一种方法要求我创建一个额外的类,该类仅用于封装随事件传递的任何参数,这似乎是不必要的,除非我遗漏了什么。

那么,使用 EventArgs 的原因是什么?在声明事件时委托(delegate)?它给我带来了什么?

最佳答案

它使您能够返回事件参数,仅此而已。如果您不需要那个,那么也许您不需要 EventHandler 委托(delegate)。

从更大的角度来看,EventArgs 是使用事件从一个地方到另一个地方获取数据的“社会可接受的”方式。当然,您可以创建自定义委托(delegate)来执行此操作,但是 EventArgs 在 Visual Studio 等中具有工具支持。

关于c# - 是否有令人信服的理由在声明事件时使用 EventHandler<T> 委托(delegate)而不只是 Action<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921772/

相关文章:

c# - 如何在 VS2010 中创建 .NET2 兼容的应用程序?

c# - 如何存储嵌入式资源的路径?

c# - AutoResetEvent.WaitOne() 导致死锁

c# - 以编程方式为特定设备安装特定驱动程序(以及预安装失败时)

c# - 如何使用带有wp7的GPS获取地址名称

javascript - DOM 加载后添加的复选框上的复选框单击事件

javascript - 如果在不同的子元素上移动,MouseEvent.offsetX/Y 将重置为 0

events - socket.io - 捕获所有事件

.net - 什么是适合我们需求的轻量级 ORM?

c# - 我应该为我的 Linq2Sql 数据使用 Struct 而不是轻量级数据类吗?