Lambda表达式演变
Lambda表达式是一种匿名函数。
演变步骤:
一般的方法委托 => 匿名函数委托 => Lambda表达式
Lambda表达式其实并不陌生,他的前生就是匿名函数,所以要谈Lambda表达式,就不得不谈匿名函数,要谈匿名函数,那又要不得不谈委托。
首先,定义一个委托如 :
delegate int ProcessInt(int i);
定义了委托可以像变量一样传递方法。如:
void Sample(ProcessInt pro)
这时我们需要写与委托签名一样的方法:
int Double(int i) { return i * 2; } int Divide(int i) { return Convert.ToInt32(i / 2); }
对一个很简单的操作,来说,这样重复定义方法很麻烦,不够优雅,.net 2.0 出现了匿名方法,像这样:
Sample(delegate(int i) { return i * 2; }); //匿名方法
现在好了,要调什么方法,我不用再定义方法了,但是写程序还是要敲很多字符,好,Lambda表达式来了。它是这样写的:
Sample(i => i * 2); //Lambda表达式
或者说,这样
Sample2((i, k) => i * k);
代码:
执行Test就可以验证结果。

delegate int ProcessInt(int i); delegate int Add(int i, int k); int Double(int i) { return i * 2; } int Divide(int i) { return Convert.ToInt32(i / 2); } void Sample(ProcessInt pro) { int i = 30; Console.WriteLine(pro(i)); } void Sample2(Add pro) { int i = 30; int k = 5; Console.WriteLine(pro(i,k)); } public void Test() { Sample(Double); Sample(Divide); //委托 Sample(delegate(int i) { return i * 2; }); //匿名方法 Sample(i => i * 2); //Lambda表达式 Sample(i => Convert.ToInt32(i / 2)); Sample2((i, k) => i * k); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?