具有标准查询运算符的 lambda
本文关键字:lambda 运算符 查询 标准 | 更新日期: 2023-09-27 18:24:58
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)
这是一个通用委托定义,它匹配任何具有单个输入参数的非 void 方法。您的 lambda 函数(即匿名方法(与此签名匹配。
顺便说一句,你不需要创建这个委托 - 它已经存在于.NET框架中: Func<T, TResult>
到目前为止,
您是否阅读过有关代表的任何教程?
该行表示:返回 TResult 并采用 TArg0 参数的函数的委托类型。由于这是一个通用委托,您可以分配各种方法,因此可以执行以下操作:
int Foo (int i);
double Foo (string str);
...
TArg0 arg0
是一个函数参数(参数名称:arg0,参数类型:泛型,目前未知(。因此,编译器会在您实际使用它时推断出 TArg0,例如 double Foo(string str)
会设置TArg0 = string
.