lambdas与标准查询运算符

时间:2013-07-25 13:40:06

标签: c# lambda delegates

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)  

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

TArg0 arg0是一个函数参数(参数名称:arg0,参数类型:泛型,目前未知)。因此,当您实际使用TArg0时,编译器推断 ,例如double Foo(string str)会设置TArg0 = string