如何将成员函数的参数强制为特定类型

How to force a member function's argument to a specific type

我写了一个小的 F# 库,其中包含一些数学函数,如下所示:

namespace MyLib

type Math() =
    member this.add(a,b) =
        a+b

现在,我正尝试从 C# 调用它,例如:

using System;
using MyLib;

class Test {
   static void main(string[] args) {
      Double sum = MyLib.add(1.2, 3.5)
      Console.WriteLine(sum.ToString());
   }
}

这段代码给我一个错误,当我查看函数的签名时,我看到它接受两个整数。

我使用 Doubles 的原因是因为在另一个函数中,我正在使用 F# 求幂。我如何告诉 F# 函数它应该接受 Doubles 而不是 ints

您可以只显式添加类型注释:

type Math() =
    member this.add(a:float,b:float) =
        a+b

(注意 System.Double 在 F# 中被称为 float