为了账号安全,请及时绑定邮箱和手机立即绑定

何时使用 Action Delegate 而不是 Predicate Delegate

何时使用 Action Delegate 而不是 Predicate Delegate

C#
蓝山帝景 2022-10-15 15:20:37
你什么时候会使用谓词委托而不是动作委托?例如,为什么List<string>.RemoveAll()需要 aPredicate<string>而不是 a Action<string>?我认为这是因为Action<string>只能返回一个void. 那么它们之间的唯一区别是委托的返回类型吗?抱歉,如果这太含糊了,我正试图围绕细微差别和条款。
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

它们是完全不同的——Action代表一个 void 函数;Predicate是旧版本的Func<T, bool>- 一个接受对象并返回布尔值的通用函数。使用取决于需要,但绝不应该在这两种类型之间进行选择。



查看完整回答
反对 回复 2022-10-15
?
森林海

TA贡献2011条经验 获得超2个赞

顾名思义,谓词委托构成一个谓词,它将匹配条件/谓词并返回bool。正如签名所说的动作委托不返回任何东西(一种工作方式)。

List<string>.RemoveAll()需要谓词原因,如果您想T从列表中删除与特定条件匹配的所有元素怎么办?


查看完整回答
反对 回复 2022-10-15
  • 2 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信