考虑一个泛型AB函数的委托:

public delegate B Fun<A, B>(A x);

然后我可以编写一个接受并调用Fun委托的函数:
public static B invokeFun<A, B>(A x, Fun<A, B> f)
{ return f(x); }

(不管写invokeFun是否明智)
我可以写invokeFun而不指定Fun代表吗?我希望这样的事情能奏效,但它没有:
public static B invokeFun<A, B>(A x, B (A) f)
{ return f(x); }

最佳答案

不,没有。
最接近的是.net 3.5中的两个通用委托族:FuncAction。显然,它们实际上并不存在于.net 2.0中(除了Action<T>),但它们编写起来很简单——实际上我已经done so for you:)
就我个人而言,我很高兴“uber short”语法是无效的——我发现它比普通的参数语法“here's the type,here's name”更难理解。

07-26 08:02