C# Lambda表达式

 

一、简介  

  Lambda表达式来源于数学家Alonzo Church等人在1920~1930期间发明的Lambad积分。Lambda积分是用于表示函数的一套系统,它使用希腊字母Lambda( λ )来表示无名函数。

  C# 3.0引入了Lambda表达式,它是一种简化的匿名函数,可用于创建委托或表达式目录树。你也可以将 Lambda 表达式作为参数进行传递,或者将它作用于函数调用值调用后返回的一个函数来使用。

 

二、基础

  它的语法形式是: 输入参数 => 表达式或语句块  即运算符的左边是输入参数(如果有),右边是表达式或语句块。 ( “ => ” 读作 “ goes to ” )

  

  2.1 表达式Lambda

        表达式位于 => 运算符右侧的 lambda 表达式称为“表达式 lambda”。 表达式 Lambda 会返回表达式的结果,并采用以下基本形式:

    (input parameters) => expression

 

复制代码
delegate int myDel(int x,int y);    //声明委托class Program     {         static void Main(string[] args)         {             myDel del = (x,y) =>  x+y;    //返回x+y的结果
       Console.WriteLine("values {0}",del(5,8)); //输出13

      Console.ReadKey();
     }
  }
复制代码

 

有关Lambda表达式的参数列表要点如下:

♥ Lambda表达式参数列表中的参数必须在参数数量、类型和位置上与委托相匹配

♥    表达式参数列表中的参数不一定需要包含类型(隐式类型),除非委托有ref或out参数----此时必须注明类型(显式类型)

♥    如果只有一个参数,并且是隐式类型的,周围的圆括号可以被省略,否则必须有括号

♥    如果没有参数,必须使用一组空的圆括号

 

  2.2  语句Lambda

    当lambda表达式中,有多个语句时,写成如下形式:

    (input parameters) => {  statement; }

复制代码
delegate int myDel(string str);      class Program     {         static void Main(string[] args)         {             myDel del = (str) =>             {                 Console.WriteLine("hello {0}",str);                 return 123;             };             Console.WriteLine(
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信