C#2.0中是否存在匿名,类型安全,通用的委托签名?

时间:2008-10-09 16:44:26

标签: c# generics delegates

考虑通用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); }

1 个答案:

答案 0 :(得分:7)

不,没有。

最接近的是.NET 3.5中的两个通用委托系列:FuncAction。显然它们实际上并不存在于.NET 2.0中(除了Action<T>),但它们写起来很简单 - 事实上我done so for you:)

我个人很高兴“uber-short”语法无效 - 我觉得比正常的“这里的类型,这里是名称”参数的语法更难理解。