这种 C# 函数组合方法是如何工作的?

Ali*_*sty 3 .net c# functional-programming func

我出现了以下代码:

public static class FuncUtils
{
    public static Func<T1, T3> Compose<T1, T2, T3> (Func<T1, T2> f1, Func<T2, T3> f2)
    {
        return a => f2(f1(a));
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说最大的谜团就是这个

返回 a => f2(f1(a));

你能解释一下它是如何工作的吗?

Pac*_*ac0 5

它将返回一个Func<T1, T3>这是一个函数(委托),它接受一些类型的参数T1并返回类型的结果T3。我们调用返回的Func f

的结果(返回值)f只是2 个函数参数的结果f1,并由任何给定参数f2组成(如数学函数组合)。

更多关于f,返回Func

应用于f1参数a(类型为T1),获取一些结果b(类型为T2),然后应用于f2b调用此结果c(类型为T3)。将是任何传递到 的c结果。af