【问题标题】:Action Delegates in F#F# 中的动作委托
【发布时间】:2019-09-27 00:00:45
【问题描述】:

在 Giraffe 库示例中,我注意到以下内容:

[<EntryPoint>]
let main _ =
    WebHostBuilder()
        .UseKestrel()
        .Configure(Action<IApplicationBuilder> configureApp)
        .ConfigureServices(configureServices)
        .Build()
        .Run()
    0

虽然我了解大部分内容,但我不清楚 Configure(Action&lt;IApplicationBuilder&gt; configureApp) - configureApp 是否被转换为 Action&lt;IApplicationBuilder&gt;

更新

据我了解构造函数调用,每个 Microsoft documentation:

您将对象与构造函数参数一起初始化, 按顺序列出参数并用逗号分隔 括在括号中,或通过使用命名参数和值 括号

【问题讨论】:

    标签: f# f#-giraffe


    【解决方案1】:

    它正在创建一个新的委托,使用委托构造函数,如 F# 函数。 C# 等价物是:

    .Configure(new Action<IApplicationBuilder>(configureApp))
    

    【讨论】:

    • F# 总是允许使用构造函数作为函数吗?我的印象是实例化对象需要括号(请参阅帖子中的更新)。
    • 构造联合类型使用相同的机制。 Some 1 是对 Some 的构造函数的调用。我不能说 F# 支持这一点多久,但已经有一段时间了......
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多