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();
        }

 

posted @ 2018-07-31 14:46  WhiteSpace  阅读(323)  评论(0编辑  收藏  举报