【问题标题】:How to define optional parameters in F# modules?如何在 F# 模块中定义可选参数?
【发布时间】:2019-06-14 11:14:26
【问题描述】:

我正在尝试在 F# 中重新编写一个小型 C# 库,但遇到了一个错误。我正在尝试为模块中的方法定义可选参数,但编译器说“可选参数只允许在类型成员上使用”。

我检查了why you can't use them in loose functions,但改为when typing static member or member I get another error

module Kingdom =
    let Rule (?years : int) =
        ()

在阅读了关于它的 Microsoft Docs 文章后,我认为这会起作用,因为我理解你输入它的方式。

【问题讨论】:

  • 您提供的文档链接指出“可选参数只允许在成员上使用,而不是在使用 let 绑定创建的函数上”。我不相信您可以在 F# 的顶级函数上使用可选参数。

标签: f#


【解决方案1】:

通过使用another way 定义“静态类”,您可以将member 添加到其中。然后你可以使用可选参数。该类将在 C# 中显示为普通的静态类。

[<AbstractClass; Sealed>]
type Kingdom private () =
    static member Rule (?years : int) = ()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多