c# - 什么时候委托(delegate)和 Func/Action 不能互换?

标签 c# delegates action func

在大多数情况下,委托(delegate)和 Func/Action 是可以互换的,但是否存在它们不可互换的情况?能力上有一些细微的差别吗?

(是的,SO 上有很多“行动与委托(delegate)”,但没有一个回答能力问题以及它们何时不可互换。)

“它们不可互换的情况”是指您不能直接将 Func 替换为相应的委托(delegate)(并将委托(delegate)替换为相应的 Func)的情况。

最佳答案

Func 和 Action 根本不能互换

  1. FuncAction都是委托(delegate)

  2. Func<T,TResult>应该总是返回一个值

  3. Action<T>永远不应该返回值

关于c# - 什么时候委托(delegate)和 Func/Action 不能互换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995204/

相关文章:

c# - 将数据库项与 List<string> 输入进行比较

c# - 在当前使用访问者模式的 C# (2.0) 中使用委托(delegate)来简化类型安全的抽象语法树

德尔福XE2 : iterate actions in a TAcionManager object

objective-c - Objective-C 中的委托(delegate)查询

c# - 返回一个泄露实现细节的委托(delegate)

asp.net-mvc - 返回 new EmptyResult() VS 返回 NULL

swift - 在屏幕上以随机位置永远移动 Sprite

c# - 如何用随机图像制作对象?

c# - 作为页面发布到 Facebook 页面

c# - 检查浏览器版本