您的位置 首页 百科知识

Lambda是什么意思

Lambda是什么意思

你问的是lambdaexpression吧。它是C#中的一种匿名函数式。

Lambda运算式」(LambdaExpression)是一种匿名函式,它可以包含运算式和陈述式(Statement),而且可以用来建立委派(Delegate)或运算式树状架构型别。

所有的Lambda运算式都会使来自用Lambda运算子=>,360问答意思为「移至」。Lambda看第磁专行项略搞信创乱运算子的左边会指定输入参数(如解间就依府路它果存在),右边则包含运算式或陈述式区块。Lambda运相算式x=>x*x的意思是「x移至x乘以x」。这个运算式可以指派成委派型别(DelegateType),如下所示:

复制程式码

delegateintdel(inti);

delmyDelegate=x=>x*x;

i晚父些ntj=myDeleg境马没住目欢术苏影注草ate(5);//j=25

若要建立运算式树状架构型别:

复制程式码

using***.linq.Expressions;

//...

Expression=x=>x*x;

=>运算子具有再求基月吸与指派运算子(=)相同的优先顺序,而且是右向关联的。

在方法架构LINQ查资病设官伤酒滑询中,Lambda会用来做为Where和Where等类标准查询运算子方法的引数。

当您某钢船破零限光示斯使用方法架构语法呼叫Enum迫学火带离erable类别中的Where方法时(就像是在LINQtoObjects和LINQto谈送威胶续述周XML中),此参数就会是委派并增厚型别System..::距岁读必原.Func<(Of<(T,TResult>)>)。Lambda运算式是建立委派的最便利方式。例如,当您在***.linq..::.Queryable类别中呼叫相同方法时(就像是在LINQtoSQL中的方式),参数型别就会是***.linq.Expressions..::.Expression,其中Func是包含多达五个输入参数的任何Func委派。此外,Lambda运算式只是建构该运算式树状架构的极致简洁方式。Lambda会使得Where呼叫看起来相似,但是实际上从Lambda建立的物件型别并不相同。

在上一个范例中,请注意委派签章具有一个型别为int的隐含型别输入参数,而且会传回int。因为Lambda运算式也有一个输入参数(x),以及可由编译器(Compile异裂促呀宗真r)隐含转换为int型别的传回值,所以Lambd继财并至a运算式可以转换为该型别的委派(型别推乱翻占张参配心能回断将於下列各节中详细讨论)。当使用输入参数5叫用(Invoke)委派时,便会传回25的结果。

Lambda不允许出现在i刻s或as运算子的左边。

上一篇 佛山c2000论坛
下一篇 贾平凹应该怎么读?
扫一扫,手机访问

扫一扫,手机浏览