C#匿名委托与Lambda表达式详解
发布时间 - 2026-01-11 03:03:14 点击率:次通过使用匿名委托(匿名方法),使编程变得更加灵活,有关委托与匿名委托请参考我的前一篇Blog《委托与匿名委托》。

继续之前示例,代码如下:
static void Main(string[] args)
{
Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b)
{
return a + b;
};
Worker worker = new Worker();
int result = worker.HandleTwoNumber(10, 10,method);
Console.WriteLine(String.Format("Result:{0}", result));
Console.ReadLine();
}
上述程序worker将按照Main给定的参数与计算方式(method),计算出结果返回。根据等效性代码可以进一步简化,如下:
static void Main(string[] args)
{
Worker worker = new Worker();
int result = worker.HandleTwoNumber(10, 10, delegate (int a, int b)
{
return a + b;
});
Console.WriteLine(String.Format("Result:{0}", result));
Console.ReadLine();
}
看到此处有过js、jquery开发经验的朋友可能会突感亲切,哦...匿名函数。在jquery中到处都用的$("#id").click(function(){.........})。
C#中对于匿名委托在使用时可以进一步精简,再精简的结果就变成了表达式,称为Lambda表达式。
static void Main(string[] args)
{
Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b)
{
return a + b;
};
}
Lambda表达式表述:
static void Main(string[] args)
{
Worker.TwoNumberHandleMethodDelegate method = (a, b)=>
{
return a + b;
};
}
C# Lambda表达式使用 => 分为前后两部分,(a, b) 为参数列表,{....}为方法体。
static void Main(string[] args)
{
Worker worker = new Worker();
int result = worker.HandleTwoNumber(10, 10, (a, b) =>
{
return a + b;
});
Console.WriteLine(String.Format("Result:{0}", result));
Console.ReadLine();
}
下面给出方法与Lambda表达式转换对照
private void A1()
{
Console.WriteLine("....");
}
//Lambda
()=>{Console.WriteLine("....");};
//如果方法体代码只有一句,如上还可省去方法体大括号
()=>Console.WriteLine("....");
private string A2(int a, int b)
{
return String.Format("{0}+{1}={2}", a, b, a + b);
}
//如上示例可简化为
(a,b)=>{return String.Format("{0}+{1}={2}", a, b, a + b);}
//因为方法体只有一句,可进一步简化
(a,b)=> String.Format("{0}+{1}={2}", a, b, a + b);
//此时注意return应该去掉,C#编译器自动识别=>做返回值
private string A3(int a)
{
return String.Format("{0}", a);
}
//上面示例可简化为
(a)=>String.Format("{0}", a);
//如果参数列表只有一个参数,参数列表的()可以去掉,上面进一步简化为
a=>String.Format("{0}", a);
通过这篇文章你可能已经意识到在C#中,方法、委托、匿名方法,lambda表达式并无明显区分边界,它们之间可以灵活转化。在实际开发中关于委托的知识点非常多,如委托与事件。如果时间允许,希望能把委托深化的文章写一下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# 匿名委托
# Lambda
# C#中Lambda表达式的用法
# C# lambda表达式原理定义及实例详解
# C# lambda表达式应用如何找出元素在list中的索引
# C#中方法的直接调用、反射调用与Lambda表达式调用对比
# 理解C#中的Lambda表达式
# 初步认识C#中的Lambda表达式和匿名方法
# C# Lambda表达式select()和where()的区别及用法
# 一句
# 有过
# 自动识别
# 意识到
# 只有一个
# 还可
# 能把
# 这篇文章
# 都用
# 两部分
# 变得更加
# 请参考
# 大家多多
# 计算出
# 返回值
# 变成了
# 在实际
# TwoNumberHandleMethodDelegate
# Worker
# args
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
如何快速生成高效建站系统源代码?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何确认建站备案号应放置的具体位置?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何在宝塔面板创建新站点?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
新三国志曹操传主线渭水交兵攻略
如何用JavaScript实现文本编辑器_光标和选区怎么处理
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
php结合redis实现高并发下的抢购、秒杀功能的实例
如何在阿里云通过域名搭建网站?
如何撰写建站申请书?关键要点有哪些?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何使用Vite进行前端资源打包?(配置示例)
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel如何使用Collections进行数据处理?(实用方法示例)
高端智能建站公司优选:品牌定制与SEO优化一站式服务
zabbix利用python脚本发送报警邮件的方法
黑客如何利用漏洞与弱口令入侵网站服务器?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
详解Android图表 MPAndroidChart折线图
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
非常酷的网站设计制作软件,酷培ai教育官方网站?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
iOS UIView常见属性方法小结
如何快速搭建FTP站点实现文件共享?
详解Huffman编码算法之Java实现
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Laravel如何使用查询构建器?(Query Builder高级用法)
Android实现代码画虚线边框背景效果
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案

