Lamda表达式



一、Lamda概念

  • Lambda 表达式(lambda expression)是一个匿名函数
  • Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction), 是一个匿名函数,即没有函数名的函数。
  • Lambda表达式可以表示闭包,和传统数学上的意义有区别。
  • Lamda表达式可以包含语句以及运算符等操作;
  • 可用于创建委托或表达式目录树类型;
  • 支持带有可绑定到委托或表达式树的输入参数的内联表达式;

二、作用

减少代码量

三、格式

(参数列表)=> 表达式或代码块
(object argOne, object argTwo) => {; /*Your statement goes here*/}

(input paramters) => expressoin
(input paramters) => {statement;}

左边参数可以有多个参数,一个参数或者无参数;
参数类型可以是隐式或者显示;
只有一个参数时,括号是可选地,否则是必须得;

(x,y)=>x*y
x=>x*77
x=>{return x * 77; }
(int x)=>x*77
(int x)=>{return x*77;}
()=>Console.WriteLine("127"); // 无参数,括号必须

四、两种类型

  • 语句lambda
  • 表达式lambda

1.规则

1.形参的参数类型省略;
2.只有个一参数,参数外面的括号省略;
3.只有一行代码,代码部分的{}省略,return 省略;
4.如果没有形参,=>前必须有(),() => { ... ;}

2. 委托 + 匿名函数 => lambda表达式

在这里插入图片描述
>等效于
在这里插入图片描述
匿名函数的委托,用lambda表达式表示:

示例二:
在这里插入图片描述

3.无形参,无返回值

的匿名函数委托类型的lambda表达式写法:

public delegate void delegater();
del d= () => Console.WriteLine(“123”);

4.有形参,无返回值

代码如下(示例):
public delegate void delegater(string msg);
del d = (s) => Console.WriteLine(s+“,饭已经做好了!”);
d+=(t) => Console.WriteLine(s+“下楼米西吧!”);
d(“白云”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>