Lambda表达式简介

Lambda表达式是比匿名方法更简洁的一种匿名方法语法。
Lambda运算符:所有的Lambda表达式都是用新的Lambda运算符 =>,可以叫它,“转到”或者 “成为”。运算符将表达式分为两部分,左边指定输入参数,右边是lambda的主体。

lambda表达式:

1.一个参数:param=>expr
2.多个参数:(param-list)=>expr

匿名方法转换为lambda表达式的步骤

  1. 删除delegate关键字
  2. 在参数列表和匿名方法主体之间放lambda运算符=>.lambda运算符读作goes to

简化lambda表达式

  1. 编译器还可以从委托的声明中知道委托参数的类型,因此lambda表达式允许我们省略类型参数。
    • 带有类型的参数列表称为显示类型
    • 省略类型的参数列表称为隐式类型
  2. 如果只有一个隐式类型参数,我们可以省略周围的括号
  3. lambda表达式允许表达式的主体是语句块或者表达式。如果语句块包含了一个返回语句,我们可以将语句块替换为return关键字后的表达式(即 去掉关键字return)

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace 匿名方法和lambad表达式
{
delegate int MyDelegate(int x); //声明一个委托
class Program
{
public static int Add(int x) //实现委托的方法
{
return x + 20;
}
static void Main(string[] args)
{
MyDelegate del = delegate (int x){ return x + 20;};//匿名方法
MyDelegate del1 = (int x) =>{ return x + 20; }; //lambad表达式 变形1:去掉delegate关键字

MyDelegate del2 = (x) => { return x + 20; }; //lambad表达式 变形2:去掉参数类型

MyDelegate del3 = x => x + 20; //lambad表达式 变形3:去掉参数括号和return关键字

Console.WriteLine("两个数的和为{0}", del3(20));

Console.ReadLine();
}
}
}