0
public delegate TResult Func<TArg0, TResult>(TArg0 arg0)  

Func<int, bool> myFunc = x => x == 5;
bool result = myFunc(4); // returns false of course  

我不明白这个例子。
这段代码是什么意思?

public delegate TResult Func<TArg0, TResult>(TArg0 arg0)  
4

2 回答 2

0

这是一个通用委托定义,它匹配任何具有单个输入参数的非 void 方法。您的 lambda 函数(即匿名方法)与此签名匹配。

顺便说一句,您不需要创建此委托 - 它已经存在于 .NET 框架中: Func<T, TResult>

于 2013-07-25T13:42:49.177 回答
0

到目前为止,您是否阅读过任何有关代表的教程?

该行表示:返回 TResult 并采用 TArg0 参数的函数的委托类型。由于这是一个通用委托,您可以分配各种方法,以下都是可能的:

int Foo (int i);
double Foo (string str);
...

TArg0 arg0是一个函数参数(参数名称:arg0,参数类型:通用,暂时未知)。因此,编译器会在您实际使用它时推断出TArg0 ,例如double Foo(string str)将 set TArg0 = string

于 2013-07-25T13:43:03.930 回答