我有以下C#代码。

namespace MyMath {
    public class Arith {
        public Arith() {}
        public int Add(int x, int y) {
            return x + y;
        }
    }
}

我想到了名为testcs.fs的F#代码来使用此对象。
open MyMath.Arith
let x = Add(10,20)

当我运行以下命令

fsc -r:MyMath.dll testcs.fs

我收到此错误消息。

/Users/smcho/Desktop/cs/namespace/testcs.fs(1,13):错误FS0039: namespace “Arith”为
没有定义的

/Users/smcho/Desktop/cs/namespace/testcs.fs(3,9):错误FS0039:值或构造函数
未定义“添加”

有什么问题吗?我在.NET环境中使用了mono。

最佳答案

尝试

open MyMath
let arith = Arith() // create instance of Arith
let x = arith.Add(10, 20) // call method Add

代码中的类名是类名,不能像 namespace 那样打开它。可能您对打开F#模块的能力感到困惑,因此可以不加限制地使用其功能

08-28 21:38