【问题标题】:Accessing a namespace containing .base in its name from F#从 F# 访问名称中包含 .base 的命名空间
【发布时间】:2010-05-02 21:02:50
【问题描述】:

正如标题所说,我正在尝试使用在名称中包含“base”的命名空间中声明的类。 考虑如下情况:

open Foo.base.Bar

在 C# 中,我只在 base 之前使用 @,但 F# 似乎忽略了这一点,并认为 @ 是用于列表连接的中缀运算符。 由于命名空间属于我无法修改的第三方库,有没有办法我仍然可以从 F# 访问它?

【问题讨论】:

    标签: .net interop f# naming-conventions keyword


    【解决方案1】:

    在 F# 中,您可以通过在两对 `` 符号之间包含特殊名称来实现类似的目的。以下应该可以解决问题:

    open Foo.``base``.Bar
    

    这比 C# 更灵活一些 - 名称几乎可以包含任何内容,因此您可以例如定义名称中带有空格的成员:

    let ``some name!`` = 42
    

    【讨论】:

    • 这是一个方便的功能;在 F# 产品单元测试中,我们有名为“member this.`Adding a reference to the project correctly updates the .fsproj file`()”的测试。 :)
    猜你喜欢
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多