Func与Action委托的区别解析
作者:暮色微凉
时间:2025-11-14
来源:互联网
浏览:0
Func有返回值而Action没有,前者用于需返回结果的场景如LINQ查询,后者用于执行无返回的操作如事件处理,两者均支持最多16个输入参数。
Func有返回值而Action没有,前者用于需返回结果的场景如LINQ查询,后者用于执行无返回的操作如事件处理,两者均支持最多16个输入参数。

Func 和 Action 是 C# 中内置的泛型委托类型,广泛用于 LINQ、异步编程和函数式编程风格中。它们都属于系统定义的通用委托,但用途和结构有明显区别。
返回值的区别:Func 有返回值,Action 没有
最核心的区别在于是否具有返回值:
• Func 委托封装的方法必须返回一个值,最后一个泛型参数表示返回类型。• Action 委托封装的方法不返回任何值(即 void)。
例如:
FuncAction
泛型参数数量限制
两者都支持最多 16 个输入参数的重载,但使用方式略有不同:
• Func 最多支持 16 个输入参数 + 1 个返回值类型,如 Func• Action 最多支持 16 个输入参数,没有返回类型,如 Action
示例:
FuncAction
典型使用场景
根据是否有返回值的需求选择合适的委托类型:
• 使用 Func 的场景:需要计算并返回结果,比如条件判断、数据转换、表达式求值。• 使用 Action 的场景:执行某个操作但不需要返回结果,比如日志输出、事件处理、回调通知。
在 LINQ 中,Where、Select 等方法内部大量使用 Func:
var result = list.Where(x => x.Age > 18).Select(x => x.Name); // Where 接收 Func基本上就这些。选择 Func 还是 Action,关键看方法是否需要返回值。用好这两个泛型委托,可以让代码更简洁、可读性更强。
作者最新文章
白描 PDF
2026-09-16 17:44
密码键盘
2026-09-16 17:43
3dmax快捷键失效了怎么办
2026-09-16 13:53
Xiaomi 18 Fold首销数据解读:较上代大折叠增长310%的原因与配置分析
2026-09-08 16:55
PDF文件太大怎么压缩?在线减小体积的操作步骤
2026-09-03 11:12
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















