我有一个F#类,它使用以下命令来声明但不初始化类成员:
[<DefaultValue>] val mutable myVariable : myType
如何检查代码是否已初始化此值?我试过了:
x.myVariable = null
但这似乎不起作用。
答案 0 :(得分:1)
从你的描述中,很难说出你实际想要实现的目标 - 使用未初始化的值和继承通常不是F#中做事的首选方式(但它们有时是互操作性所必需的。 NET),所以如果你遵循这个方向,使用F#可能无法获得很多好处。
不会为您做以下工作吗?我们的想法是定义一个基类,它通过构造函数获取私有的值:
type Base(myThing : Random) =
member x.MyThing = myThing
然后,继承的类可以提供值,但也可以使用成员访问它:
type MySubclass() =
inherit Base(new Random(0))
member x.Next() =
x.MyThing.Next()