当前位置:  开发笔记 > 编程语言 > 正文

代表:Predicate Action Func

如何解决《代表:PredicateActionFunc》经验,为你挑选了3个好方法。

有人能为这三位最重要的代表提供一个很好的解释(希望有例子):

谓语

行动

FUNC

C#开发人员应该注意哪些其他代表?

您多久在生产代码中使用它们?



1> Jon Skeet..:

Predicate:基本上Func; 问一个问题"指定的参数是否满足委托所代表的条件?" 用于像List.FindAll这样的东西.

Action:根据参数执行操作.非常通用.在LINQ中使用不多,因为它基本上意味着副作用.

Func:在LINQ中广泛使用,通常用于转换参数,例如通过将复杂结构投影到一个属性.

其他重要代表:

EventHandler/ EventHandler:遍布WinForms

Comparison:喜欢IComparer但是以代表的形式.


当需要将大量模型转换为业务类时,转换器是一个很好的代表,即http://www.stum.de/2009/12/23/using-a-converter-to-convert-from-a-模型到一个企业级/
还有`System.Converter `,尽管它很少使用.

2> Rahul Garg..:

Action,Func并且Predicate都属于委托家人.

Action :Action可以接受n个输入参数,但返回void.

Func:Func可以接受n个输入参数,但它总是返回所提供类型的结果.Func,这里T1,T2,T3是输入参数,TResult是它的输出.

Predicate:谓词也是Func的一种形式,但它总会返回bool.简单来说就是它的包装Func.



3> G-Wiz..:

除了Jon的回答,还有

Converter:它本质上是Func,但有语义.由List.ConvertAll和Array.ConvertAll使用,但个人还没有在其他任何地方看到它.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有