匿名方法和Lambda表达式

(前导知识为委托的基本运用和匿名函数基本知识)

1.匿名方法和lambda表达式  

  匿名函数这个术语同时涵盖了匿名方法Lambda表达式,在很多情况下,两者使用相同的转换规则。基本匿名方法能做的事情都可以使用lambda表达式完成。此外,一般情况下lambda表达式都更易读、更紧凑。捕获变量在lambda表达式中的行为和在匿名函数中是一样的。
  与匿名方法相似,lambda表达式有特殊的转换规则:表达式的类型本身并非委托类型,但可以通过多种方式隐式或显式的转换成一个委托实例。

 

2.lambda表达式的格式

lambda表达式的一般格式:
(显示类型参数列表)=> 表达式
"=>" 读作goes to

 

3.匿名函数与lambda表达式转换规则和实例

例1(一个参数方法体括号不可省略):

Action<int> a=delegate(int i){Console.WriteLine(i)};

Action<int> a=(int i)=>{Console.WriteLine(i)};
//编译器可以自动推断参数类型
Action<int> a=(i)=>{Console.WriteLine(i)};
//一个参数的时候可以省略括号
Action<int> a=i=>{Console.WriteLine(i)};

 

例2(两个参数方法体括号可省略)

Func<string,int,bool> f=delegate(string s,int i)}{return true};

//如果返回值只有一行代码可以省略方法体括号和return
Func<string,int,bool> f=(string s,int i)=>true



规则总结:

(1)编译器可以自动推断参数类型

(2)一个参数的时候可以省略括号

(3)如果返回值只有一行代码可以省略方法体括号和return

 

Func<int,int> f=delegate(int i){return i*2};

转换后:Func<int,int> f=i=>i*2;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值