拉姆达表达式
拉姆达表达式
让我们先看一个简单的拉姆达表达式:
x=>x/2
这个表达式的意思是:x为参数,对x进行相应的操作后的结果作为返回值。
通过这个拉姆达表达式,我们可以看到:
这个表达式没有任何类型信息,但这并不代表拉姆达表达式是和类型无关的。在实际运用上,编译器会根据表达式的上下文判断上述x的类型及返回值的类型。例如:
using System
using System.Linq
public class LambdaTest
{
static void Main() {
Func<int, double> expr=x=> x / 2
int someNumber=9
Console.WriteLine( "Result: {0}", expr(someNumber) )
}
}
上述代码中,加粗部分为拉姆达表达式。Func<>为 delegate System.Func<T,TResult>
上述运行结果为:Result:4
根据我们学习的数学知识,9/2应当结果是4.5,为什么上述结果会是4而不是4.5呢是因为x是整型,x/2的结果也是整型,虽然在上述我们拉姆达表达式中,我们指明结果是double,但x/2这个表达式,由于x是整型,故计算出来的结果已被截掉小数,然后再转换为double,故结果是4,而不是4.5
要使结果是4.5,则只需定义上述相关语句为 Func<double,double> expr=x=> x / 2 即可。
无参数的拉姆达表达式:
using System
using System.Linq
public class LambdaTest
{
static void Main() {
int counter=0
WriteStream( ()=> counter++ )
Console.WriteLine( "Final value of counter: {0}",counter )
}
static void WriteStream( Func<int> counter ) {
for( int i=0 i < 10 ++i ) {
Console.Write( "{0}, ", counter() )
}
Console.WriteLine()
}
}
拉姆达表达式详细解释(lam函数表达什么意思)
拉姆达表达式详细解释1、让我们先看一个简单的拉姆达表达式:
2、x=>x/2
3、这个表达式的意思是:x为参数,对x进行相应的操作后的结果作为返回值。
4、通过这个拉姆达表达式,我们可以看到:
5、这个表达式没有任何类型信息,但这并不代表拉姆达表达式是和类型无关的。
6、在实际运用上,编译器会根据表达式的上下文判断上述x的类型及返回值的类型。
8、using System;
9、using System.Linq;
10、public class LambdaTest
11、 static void Main() {
lam函数表达什么意思lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数。
上一篇:开口扳手规格型号
下一篇:没有了