考虑通用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); }
答案 0 :(得分:7)
不,没有。
最接近的是.NET 3.5中的两个通用委托系列:Func
和Action
。显然它们实际上并不存在于.NET 2.0中(除了Action<T>
),但它们写起来很简单 - 事实上我done so for you:)
我个人很高兴“uber-short”语法无效 - 我觉得比正常的“这里的类型,这里是名称”参数的语法更难理解。