使用Func <>(或Action <>)或创建自己的委托?

Lou*_*hys 12 .net c# delegates coding-style func

例如,哪一个在方法中的参数类型(与LINQ无关)中更好.显然Func更好,因为它更简单,更具描述性,如果每个人都在使用它,一切都将变得兼容(好).但是我注意到Microsoft在某些库中使用自己的委托,例如事件处理程序.那么,它们中的任何一个的优点和缺点是什么?我应该什么时候使用它?

编辑:

  • 显然Func <>仅在3.5中可用,所以这可能是我看到非Func代表的主要原因.任何其他不使用Func的原因?(例如:是来自.NET4)

  • 同样的问题也适用于Action <>

小智 5

当非常清楚它们的用途是什么时,Func <>非常有用,并且输入的数量很少.

当输入的数量较大,或者意图可能存在一些歧义时 - 那么使用带有命名参数的委托可以使事情更加清晰.

  • 我的意思是每个参数的意图.例如:Func <int,int,string string> - 只是看着它很难/不可能推断出它的用途.此外,添加参数可能意味着重构大量代码,并可能破坏接口. (3认同)