考虑一个泛型A
到B
函数的委托:
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中的两个通用委托族:Func
和Action
。显然,它们实际上并不存在于.net 2.0中(除了Action<T>
),但它们编写起来很简单——实际上我已经done so for you:)
就我个人而言,我很高兴“uber short”语法是无效的——我发现它比普通的参数语法“here's the type,here's name”更难理解。