使用C#4.0中的匿名函数,为什么我无法定义内联委托

rer*_*run 2 c c# language-features

委托人拥有保留定义类型的优点是什么?

例如在c中如果我想定义一个函数,该函数接受一个我可以简单定义的函数的指针

void F(bool (*pFn)(int));
Run Code Online (Sandbox Code Playgroud)

在c#中我必须采取额外的步骤,首先定义委托类型类似,如果我必须在c中创建一个typedef,然后才能定义上面的函数

delegate bool del(int s);
void F(del d){...}
Run Code Online (Sandbox Code Playgroud)

我发现c#风格不那么清晰和灵活.

答:我没有意识到这在C#
B中是可行的:通过引入c类型声明系统的复杂性,这是一个糟糕的语言特性.


让我澄清我知道fucn可用我想知道是否有办法定义一个任意的委托.

Jos*_*osh 5

.NET 3.5中的Func将允许您拥有最多4个参数和1个返回值..NET 4中的Func将允许您拥有最多16个参数和1个返回值.如果你需要更多,你可能应该得到一台量子计算机.

此外,除了返回值之外,Action在.NET 3.5和.NET 4中具有相同的限制.