C#:Action delegate vs explicit delegate

MrL*_*ane 6 .net c# events delegates

只是一个简单的问题:人们对使用Action委托进行公共类事件与定义自己的事件委托类型的想法是什么?我知道很多人使用Actions作为"次要"代理,例如lamdas和.ForEach()扩展方法等,但对于实际的类事件成员,使用Actions是个好主意吗?什么是这个领域的"最佳实践".

谢谢

Jar*_*Par 11

而不是Action,我EventHandler<TEventArgs>用于任何事件声明.它使我无需定义自己的委托类型.它还具有强制数据类型从System.EventArgs派生的额外好处,因此可以很好地与.Net事件模式一起使用.

  • 可能发生的一件事是,如果您需要稍后在事件中返回一些额外信息,您只需将其添加到EventArgs类即可.如果您返回说Action <String>,无论如何都要返回一个字符串,如果更改它,它将破坏使用它的所有代码. (3认同)