C# 匿名方法和Lambda表达式

匿名方法(Anonymous methods)

匿名方法 :提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。

在匿名方法中不需要指定返回值类型,系统会在主体内的 return 语句推断。

 static int Test1(int arg1,int arg2)
 {
     return arg1 + arg2;
 }
 static void Main(string[] args)
 {
  // Func<int, int, int> plus = Test1;//这是正常使用委托的方式

  //使用匿名方法的形式
Func<int, int, int> plus = delegate (int arg1, int arg2)
  {
       return arg1 + arg2;
  };
}

匿名方法即没有名字的方法,关键字是delegate
匿名方法只能将方法赋值给委托,通过委托调用该方法
匿名方法本质上是一个方法,只是没有名字,任何使用委托变量的地方都可以使用匿名方法
赋值

Lambda 表达式
Lambda表达式是匿名方法的简写形式,用来代替匿名方法
 static void Main(string[] args)
 {
 // Func<int, int, int> plus = Test1;//这是正常使用委托的方式
 Func<int, int, int> plus = ( arg1,arg2)=>//换成Lambda表达式形式
     {
         return arg1 + arg2;
     };
     Console.WriteLine(plus(12, 45));
     Console.ReadKey();
}
Lambda表达式是不需要声明类型的:
如果Lambda表达式只有一条语句,在方法体中就不需要大括号和return语句,编译器
会自动添加return语句。如果Lambda表达式的实现代码中需要多条语句,就必须添加大括号和return语句
 static void Main(string[] args)
 {
     Func<int, int> test2 = a => a+1;//简写形式
     Func<int, int> test3 = (a) =>//普通形式
     {
         return a + 1;
     };
     Console.WriteLine(test2(22));
     Console.ReadKey();
 }
Lamdba表达式的几种形式:
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈言必行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值