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

标签 c# .net 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));
    }
}

对我来说最大的谜是这个

return a => f2(f1(a));

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

最佳答案

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

f的结果(返回值)只是 2 个函数参数 f1 的结果和 f2在给定的任何参数上组合(如数学函数组合)。

更多关于 f , 返回的 Func :

申请f1在参数 a 上(类型 T1 ),得到一些结果 b (类型 T2 ),然后应用 f2b ,将此结果称为 c (类型 T3 )。 c将是任何 a 的结果传递给 f .

关于c# - 这个C#函数组合方法是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725270/

相关文章:

c# - 尝试引用对象数组内的多维对象数组中的元素

.net - 您使用什么 .NET 语言编写单元测试?

c# - 自动完成扩展程序未填充

asp.net - Web.Debug.config 不会将连接字符串转换为 MVC 5 项目中的 Web.config

javascript - Javascript 中的 SICP 练习 1.1.7 被卡住

functional-programming - "real world"中的功能技术

java - 在 Java 8 中将 while 循环转换为流

c# - Wix 安装项目的 exe "app can' t 在您的 PC 上运行”

c# - 尝试运行 Fluent NHibernate 教程示例时出现运行时错误

c# - 阻止 System.Net.IPAddress 类中的混合 IPv6 格式