Lambda表达式&匿名方法
“Lambda表达式“(lambda Expression)就是一个匿名函数(匿名方法),lambda表达式基于数学中的入演算得名。
lambda运算符:所有的lambda表达式都是用新的lambda运算符”=>“,可以叫他”转到“或者”成为“ 读作”goes to“。运算符将表达式分两部分,
左边指定输入参数,右边是lambda的主体(方法体)。
Lambda表达式:
一个参数:param=>expr
多个参数:(Param-list)=>expr
输入参数与表达式或语句块
输入参数:在lambda表达式中,输入参数是lambda运算符的左边部分,它包含参数的个数可以为0,1或多个,只有当输入参数为1时,lambda表达式
左边的一对小括弧才可以省略。输入参数的数量大于或者等于2是,lambda表达式左边的一对小括弧中的多个参数之间使用逗号分隔。
表达式或语句块:多个Lambda表达式 可以构成lambda语句块。语句块是梵高运算的右边 ,作为lambda的主体。语句块中可以包含多条语句,并且可以包含
循环,方法调用和if语句等。语句块必须被 {和}包围。
实例:
static void Main(string[] args) { //无参数无返回值lambda表达式 Action my = () => { Console.WriteLine("ni hao shijie"); }; my(); //有参数没有返回值的lambda表达式 Action<int> my1 = x => { Console.WriteLine(x+25); }; my1(25); //有多个参数没有返回值的lambda表达式 Action<int,int,int > my2 = (x , d ,c)=> { Console.WriteLine(x+d+c); }; my2.Invoke(12,25,44); //有返回值有参数的lambda表达式 Func<int, int, int> my4 = (str, srt) => { return str * srt; }; int a=my4.Invoke(20,20); Console.WriteLine(a); Console.ReadKey(); }