匿名方法
定义:本质上匿名方法就是委托,没有方法名,由delegate关键字修饰,具有方法参数和方法体。
优点:将具体方法和委托关联在一起,若委托只需要一个具体方法,使用匿名方法比较简洁
public delegate int CalutlatorDelegate(int a, int b);
public class LambdaDemo
{
//匿名方法
public CalutlatorDelegate Add = delegate (int a, int b) { return a + b; };
}
Lambda表达式:可以简写代码
1、lambda表达式中的参数可以是明确类型也可以是推断类型
2、lambda表示式的推断类型有上下文决定
3、=>读作goes to,左边为参数,右边为方法体(表达式,语句块)
4、若方法体中只有一句,可以直接用这句表达式,不用花括号。
//lambda表达式(明确类型)
public CalutlatorDelegate Add2 = (int a, int b) => { return a + b; };
//lambda表达式(推断类型)
public CalutlatorDelegate Add3 = (a, b) => a + b;
lambda表达式与匿名方法的比较
1、lambda表达式本质本质上就是匿名方法
2、lambda表达式允许推断类型,匿名方法不允许,必须明确类型
3、lambda表达式允许单一语句,匿名方法不允许