码迷,mamicode.com
首页 > 其他好文 > 详细

Lambda

时间:2016-12-05 16:50:35      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:delegate   声明   程序集   类型   str   return   type   pad   入参   

      将使用了C# Lambda表达式的程序集反编译后,我们发现,它实际上和匿名方法没有什么不同。Lambda的输入参数就对应着delegate括号里面的参数,由于C# Lambda表达式可以推断参数的类型,所以这里的参数无需声明。 



      Lambda操作符读作”Goes to”,它后面紧跟着表达式或者是语句块(这点和匿名方法也不同,匿名方法只能使用语句块而不能使用表达式),下面我就用实例来说明一下有那些类型的C# Lambda表达式: 

 

        //x的类型省略了,编译器可以根据上下文推断出来,后面跟着的是表达式   
      • x => x+1  
        deleage(int x){return x+1;}
      • //后面跟着的是语句块  
        x=>{return x+1;}
      • delegate(int x){return x+1;}  //输入参数也可以带类型,带类型后别忘记小括号哦
      • (int x) => x+1  
        delegate(int x){return x+1;}
      • //也可以多个输入参数,逗号分隔,别忘记小括号  (x,y) => x+y
      • delegate(int x,int y){return x+y;}  //无参的也行
      • () => 1
      • delegate(){return 1;}

例子:把s传入下面方法,执行func函数(Convert.ToInt32(s)).Array())

技术分享

 

技术分享

 

linqpad工具能将SQL自动转换为Lambda表达式

 

技术分享

Lambda

标签:delegate   声明   程序集   类型   str   return   type   pad   入参   

原文地址:http://www.cnblogs.com/ecollab/p/6134322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!