C#中Lambda表达式的简单理解

本文介绍了LambdaExpression的概念及其作为匿名方法的新语法用法。通过实例展示了如何使用LambdaExpression简化方法调用,无需显式指定参数类型,同时保持代码的简洁性和易读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lambda Expression从定义上讲是指带有“=>”符号的表达式,例如:

  • x => x + 1
  • (x, y) => x > y
  • () => 5
  • (x, y) => { return x > y; }

Lambda Expression的一个重要作用就是提供一种使用匿名方法的新语法。利用Lambda Expression表示匿名函数的一个缺点就是无法使用带out或ref关键字的参数,不过它比使用delegate关键字的表示法略为简单一点,因为无需提供参数类型,例如:

public static bool CallMethod(Func<int, bool> method)//这里需要传入的参数有点方法的指针的意思,所以下边可以传入一个方法代理
{
    return method(0);
}
 
static void Main(string[] args)
{
    CallMethod(delegate(int a) { return false; });
    CallMethod(a => { return false; });
}

可见,使用Lambda Expression表示的匿名方法无需指定参数类型,因为这一切都已经交给编译器来判断了。这一点在参数类型长而复杂的情况下(例如并行库中的方法)非常重要。因此现在要不是会涉及到out/ref参数,我都会使用Lambda Expression来表示匿名方法。Lambda参数的类型可以在编译时和被Visual Studio的intellisense引擎推断出来,这意味着在编写lambda时你将获得完全的intellisense 和编译时检查   在VS中就能感受到。你压根儿没指定类型 但它可以智能提示该参数的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值