Lambda表达式
时间:2010-08-17 来源:异样的世界
“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。
实例:1
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}
2, 有时,编译器难于或无法推断输入类型。如果出现这种情况,您可以按以下示例中所示方式显式指定类型
(int x, string s) => s.Length > x
3.使用空括号指定零个输入参数
() => SomeMethod()
4.只有在 Lambda 有一个输入参数时,括号才是可选的;否则括号是必需的。两个或更多输入参数由括在括号中的逗号分隔
(x, y) => x == y
5.可以将委托实例化为 Func<int,bool> myFunc,其中 int 是输入参数,bool 是返回值。始终在最后一个类型参数中指定返回值。Func<int, string, bool> 定义包含两个输入参数(int 和 string)且返回类型为 bool 的委托。在调用下面的 Func 委托时,该委托将返回 true 或 false 以指示输入参数是否等于 5:
Func<int, bool> myFunc = x => x == 5; //Func 委托对于封装应用于一组源数据中每个元素的用户定义表达式非常有用(个人认为)
bool result = myFunc(4); //返回一个false