如何从类成员函数中访问静态函数?

时间:2009-10-21 15:37:18

标签: f#

我有一个单元测试课:

type [<TestFixture>] BetTests()=
[<Test>]
  member x.HasGoodOddsTest() =
    let ret = HasGoodOdds 10.0
    Assert.IsFalse(ret, "Expected false");

和在类之外定义的静态方法:

let HasGoodOdds odds = odds &gt;= 20.0

但我收到编译错误:“未定义值或构造函数'HasGoodOdds'。”

超出课程范围的语法是什么?谢谢!

2 个答案:

答案 0 :(得分:2)

HasGoodOdds是否定义在BetTests类之上?它是在同一个文件中定义的吗?

它需要在它上面定义(在先前的文件中,或在此文件中的上面 - 通常你不能在定义它们之前引用F#中的实体),并且如果BetTests类没有定义在同一个文件中模块,您需要使用限定名称(如@Vitaliy所说)或使用'open'声明将命名空间/模块放入范围。

答案 1 :(得分:1)

此方法应在模块中定义。使用Namespace.ModuleName.Method惯例