帮你理解学习lambda式
概要
窗前明月光,疑是地上霜,举头望明月,低头思故乡。别误会这是开头诗与以下文章没任何关系。
今天我想给大家说道说道 C# lambda表达式,不废话,下面开始说道!
lambda
lambda是什么,它不是是什么,它只是一个语法糖,看着简单明了,写起来简单,对于开发人员可读性好,还有就是省劲儿!重点来了:lambda就是委托的实现方法的简单写法
切记,切记,只要记住这句话,所有lambda表达式都好理解!什么不理解,不理解啊很正常,咱们看的例子就一下明白了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
//声明委托delegateTest
delegate int delegateTest(int a);
static void Main(string[] args)
{
//实现委托delegateTest
delegateTest tset = new delegateTest(test);
//lambda实现方式与test方法一样
delegateTest tset1 = new delegateTest(t => t);
}
//实现委托delegateTest
public static int test(int t)
{
return t;
}
}
}
首先我们声明了一个委托定义返回值是int参数也是一个int类型,然后我们定义了test方法来实现delegateTest这个委托;这里我们用了两种方式一种是普通的声明方法方式就是test方法,另一种我们用了lambda方式就是 t=>t,这个表达式和test方法是一样的,注意了没有delegateTest这个委托这个lambda表达式就是非法的,为什么?因为lambda就是委托的实现方法,必须和委托保持一致
明白了上面的说的,咱们来仔细看看它的结构t=>t,很好理解,看图
明白了左面是参数,右面是方法体,是不是很简单!记住lambda必须有对应的委托,有的同学问了为什么有些方法我没有声明委托也能用呢,例如集合的扩张方法.where();.select()那是因为.net framework已经为我们声明了相应的委托
func
Func和Action
Func和Action就是.net framework自带的委托,我们只要查看它们的委托类型,就能写出相应的lambda表达式,Func和Action委托其实差不多,区别是Func有返回值,Action没有返回值,具体的可以去查看.netframework帮助文档,一看就明白!
结语
看了上面的讲解,相信你一定会理解lambda式,如果觉得好请给赞一个,请关注我哦!转载请注明出处
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述