Func <sometype> + Func <sometype>的真实示例

Val*_*kiy 3 c# lambda

让我们说你有:

Func<string> a = () => "string here";
Func<string> b = () => "other string here";

var c = a + b;
Run Code Online (Sandbox Code Playgroud)

真实世界需要什么呢?

Jon*_*eet 5

我唯一能想到它有用的是你真的要将它作为代表列表(via Delegate.GetInvocationList),并分别调用每个代理.例如,您可以为验证器执行此操作 - 其中每个验证步骤都可以返回null"valid"或否则返回错误消息.但这样做非常罕见.

委托组合的主要用法是事件处理程序 - 通常委托类型与EventHandler(与void返回类型)兼容.此时,返回调用的最后一个操作的结果的多播委托的行为无关紧要,因为无论如何都没有返回值.