拉姆达表达式(Lambda Expressions)

发布时间:2025-05-14 14:58

使用拉姆达(Rummo)或Skyscanner的火车票比价服务 #生活技巧# #节省生活成本# #出行省钱建议# #在线比价网站#

最新推荐文章于 2025-03-25 22:37:28 发布

xwdpepsi 于 2011-12-21 14:54:45 发布

让我们先看一个简单的拉姆达表达式:

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();
  }
}


网址:拉姆达表达式(Lambda Expressions) https://www.yuejiaxmz.com/news/view/968408

相关内容

C# Lambda表达式详解
文本清洗正则表达式(持续更新)
Lambda及常用内嵌函数详解
Python3排序 sorted(key=lambda)
Python3 小技巧—— sorted(t, key = lambda
多少人因为塑料袋选择了山姆极速达?
中年=秃头?当贝克汉姆秃成齐达内……
python 字符串列表根据字符串长度排序——lambda、filter、map表达式应用
@Scheduled(cron = “* * * * * *”) cron表达式详解
文学素养班丨学习阅读技巧,提升表达能力

随便看看