为什么我不能用null初始化mutable类型?

时间:2012-10-26 06:57:42

标签: f#

我正在尝试:

let mutable ncon : NCon = null

得到:

Error   1   The type 'NCon' does not have 'null' as a proper value

以这种方式声明类型

type NCon(settings : ISettings) = ...

我打算将它用作静态属性,稍后当用户完成设置时启动它,那么我做错了什么?为什么我不能用null启动mutable类型?

我必须使用选项吗?所以要使它成为无或有些?

1 个答案:

答案 0 :(得分:6)

您必须向NCon-Type提供AllowNullLiteral,如下所示:

[<AllowNullLiteral>]
type NCon(settings : ISettings) = ...

这是因为F#阻止你使用Null ......这不是一个坏主意恕我直言

提出其他问题: 是的我宁愿使用一个选项 - 我也会考虑使用ref-cell - 但这取决于你想用它做什么。