正如标题所说,我正在尝试使用在名称中包含“base”的 namespace 中声明的类。
考虑如下情况:
open Foo.base.Bar
在 C# 中,我只是在 base 之前使用 @,但 F# 似乎忽略了这一点,并认为 @ 是用于列表连接的中缀运算符。
由于命名空间属于我无法修改的第三方库,有没有办法仍然可以从 F# 访问它?
最佳答案
在 F# 中,您可以通过在两对 `` 符号之间包含特殊名称来实现类似的功能。以下应该可以解决问题:
open Foo.``base``.Bar
这比在 C# 中更灵活 - 名称几乎可以包含任何内容,因此您可以例如定义名称中带有空格的成员:
let ``some name!`` = 42
关于.net - 从 F# 访问名称中包含 .base 的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754970/