当我声明一个事件时,我一直在使用 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/