新闻中心

C#中的Func和Action委托有什么区别 C#常用泛型委托Func与Action

2025-11-12
浏览次数:
返回列表
Func有返回值而Action没有,前者用于需返回结果的场景如LINQ查询,后者用于执行无返回的操作如事件处理,两者均支持最多16个输入参数。

c#中的func和action委托有什么区别 c#常用泛型委托func与action

FuncAction 是 C# 中内置的泛型委托类型,广泛用于 LINQ、异步编程和函数式编程风格中。它们都属于系统定义的通用委托,但用途和结构有明显区别。

返回值的区别:Func 有返回值,Action 没有

最核心的区别在于是否具有返回值:

• Func 委托封装的方法必须返回一个值,最后一个泛型参数表示返回类型。
• Action 委托封装的方法不返回任何值(即 void)。

例如:

Func add = (x, y) => x + y; // 返回 int
Action print = message => Console.WriteLine(message); // 无返回值

泛型参数数量限制

两者都支持最多 16 个输入参数的重载,但使用方式略有不同:

• Func 最多支持 16 个输入参数 + 1 个返回值类型,如 Func
• Action 最多支持 16 个输入参数,没有返回类型,如 Action

示例:

千鹿Pr助手 千鹿Pr助手

智能Pr插件,融入众多AI功能和海量素材

千鹿Pr助手 128 查看详情 千鹿Pr助手 Func check = (num, str) => num > 0 && !string.IsNullOrEmpty(str);
Action logSum = (a, b, c) => Console.WriteLine(a + b + c);

典型使用场景

根据是否有返回值的需求选择合适的委托类型:

• 使用 Func 的场景:需要计算并返回结果,比如条件判断、数据转换、表达式求值。
• 使用 Action 的场景:执行某个操作但不需要返回结果,比如日志输出、事件处理、回调通知。

在 LINQ 中,Where、Select 等方法内部大量使用 Func:

var result = list.Where(x => x.Age > 18).Select(x => x.Name); // Where 接收 Func, Select 接收 Func

基本上就这些。选择 Func 还是 Action,关键看方法是否需要返回值。用好这两个泛型委托,可以让代码更简洁、可读性更强。

以上就是C#中的Func和Action委托有什么区别 C#常用泛型委托Func与Action的详细内容,更多请关注其它相关文章!


# c#  # 返回值  # 最多  # 如何使用  # 有什么区别  # 有什么  # 互斥  # 相关文章  # 这两个  # 区别  # 怎么建设免费的网站  # 昌邑网站推广服务  # 肇庆网站优化效果如何  # 甘肃社媒运营seo  # 长春专业新站seo优化报价  # 推广营销平台就找s火21星赞  # 营销推广自助售货机  # 天津网站建设有哪些公司  # 虹口爱采购seo  # 淮南抖音营销推广费用  # 解决问题  # 中文网 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: J*aScript对象创建方式_J*aScript设计模式应用  痛风发作了怎么办? 快速止痛和后期饮食调理  淘宝支付提示失败如何解决 淘宝支付流程优化方法  理解J*aScript Promise的微任务队列与执行顺序  J*aScript DOM操作:高效清空列表元素的策略与实践  小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  蛙漫2台版漫画地址 Manwa2正版网页版链接  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  steam官方入口大全 steam账号注册及操作指南  智慧团建扫码登录入口 智慧团建扫码登录入口官网版​  铁路12306的积分有效期是多久_铁路12306积分有效期说明  必由学在线入口 必由学网页版快速登录入口  在VS Code中配置和运行Dart程序的完整步骤  文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比  不同用户不同价格! 索尼开启账户个性化定价测试  红果短剧网页版官网入口 官方最新网址发布  深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量  J*aScript Promise链中如何正确终止后续.then执行并处理错误  Typer应用中动态命令行参数的解析与处理  正确连接J*aScript到HTML实现可点击图片与自定义事件处理  Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则  css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异  Golang指针如何与map组合使用_Golang map指针组合实践  Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖  Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践  妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  Eclipse怎么运行工程_Eclipse工程运行配置说明  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  内存检查:在VS Code中调试C++时的内存视图  Go语言中高效处理x-www-form-urlencoded表单数据  将JSON对象数组转置为键值对列表的实用指南  sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  2026春节假期票务安排_2026春节放假购票指南  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  字由网在线版登录地址 字由网网页版安全入口  SteamMachine定价或为699美元 大家想入手吗?  HTML元素状态管理:根据DIV内容动态启用/禁用按钮 

搜索