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

时间:2015-03-27 00:51:52

标签: types f#

我写了一个小的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());
   }
}

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

我使用Double的原因是因为在另一个函数中,我正在使用F#exponentiation。如何告诉F#函数它应该接受与Double s

相关的int s

1 个答案:

答案 0 :(得分:2)

您可以明确添加类型注释:

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

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

相关问题