by Emil
6. July 2009 15:01
Lambda表达式和匿名方法其实是一件事情。唯一不同的是:他们语法表现形式不同。
Lambda表达式是在语法方面做了更进一步的进化。在本质上,他们是一件事情,作用
都是:产生方法。即:内联方法。所以:我们要了解Lambda 表达式,就应该同时也了解匿名方法。
下面先看一个简单的代码例子,分别用匿名方法和Lambda表达式来实现对数组的搜索:
(1). 使用.net 2.0 的匿名方法来搜索字符串数组中包含 a 的数组元素
static void Main(string[] args)
{
string[] list = new string[] { "abc", "12", "java" };
string[] ll = Array.FindAll(list,
delegate(string s)
{
return s.IndexOf("a") >= 0;
}
);
foreach (string var in ll)
{
Console.WriteLine(var);
}
Console.ReadLine();
}
(2). 使用 .net 3.X 的Lambda表达式来搜索字符串数组中包含 a 的数组元素
static void Main(string[] args)
{
string[] list = new string[] { "abc", "12", "java" };
string[] ll = Array.FindAll(list, s => (s.IndexOf("a") >= 0));
foreach (string var in ll)
{
Console.WriteLine(var);
}
Console.ReadLine();
}
从上述两个例子我们可以看出:从代码书写角度,代码可读性角度来说:
Lambda表达式比匿名方法更简单了。
而 Lambda表达式和匿名方法都是做的同一件事情,让我们少写一个函数定义。
函数的调用和函数的实现在一起完成了。
Lambda表达式的书写格式如下:
(参数列表) => 表达式或者语句块
其中:
参数个数:可以有多个参数,一个参数,或者无参数。
参数类型:可以隐式或者显式定义。
表达式或者语句块:这部分就是我们平常写函数的实现部分(函数体)。
42ba5cfa-b073-4d16-a26a-f71479f1a2b5|0|.0
Tags:
Email2Blog