匿名方法与Lambda表达式的区别
一、匿名方法、Lambda表达式
1、匿名方法的概念:一个方法没有具体的名称,而只有关键字deleqate、方法参数、方法体,这种方法是匿名方法。
匿名方法的好处:将具体方法和委托直接关联到一起,如果我们基于委托只需要一个方法的时候,匿名方法肯定是显得简单
//【2】委托关联匿名方法
CalculatorDelegate cal2 = delegate (int a,int b)
{
return a-b;
}
public delegate int CalculatorDelegate(int a,int b);
2.Lambda表达式:在C#3.0出现的。使用这种表达的可以更简练的编写代码块。
CalculatorDelegate cal3 = (int a, int b) => { return a + b; };
CalculatorDelegate cal4 =(a,b)=>a-b;
【1】在Lambda表达式中参数类型可以是明确类型,也可以是推断类型。
【2】如果是推断类型,则参数类型可以由编译根据上下文自动推断出来。
【3】运算符=>读作goes to ,运算符左边输入参数(如果有),右边是表达式或语句块。
【4】表达式两种方式:
(input args)=>表达式
(input args)=>{语句1;语句2;语句3....}
【5】Lambda表达式和匿名方法的比较
第一、Lambda表达式本身就是匿名方法。
第二、Lambda表达式允许不指明参数类型,但是匿名方法必须要明确。
第三、Lambda表达式允许单一的表达式或多条语句组成,而匿名方法不允许单一表达式。
浙公网安备 33010602011771号