我正在尝试使用F#的输出参数调用存储过程,因此我需要将int?
值初始化为null
。但是,F#拒绝我的尝试,说该对象不能为空。我已经在网上读到了为什么会这样但我的问题仍然存在 - 我需要调用该存储过程。有没有人对我怎么做有任何想法?感谢。
答案 0 :(得分:4)
我不相信F#从null转换 - >空Nullable。但是如果你实例化一个Nullable对象,它将默认为没有值。这相当于在C#/ VB中传递null。
myStoredProc (new System.Nullable<int>())
答案 1 :(得分:2)
F#允许您做的一件好事是声明“通用值”,这样您就不必一直写出值的长度构造。
let gnull = new System.Nullable<_>();;
现在,只要您需要将null作为可空字段传递给某个函数,就可以使用gnull
:
> let foo (a:System.Nullable<int>) = 0;;
val foo : System.Nullable<int> -> int
> foo gnull;;
val it : int = 0