如何传递 Nullable进入存储过程...从 F# ?

发布于 2024-07-14 15:15:13 字数 176 浏览 3 评论 0原文

我正在尝试使用 F# 中的输出参数调用存储过程,因此我需要传递一个初始化为 nullint? 值。 然而,F# 拒绝了我的尝试,说该对象不能为空。 我已经在网上阅读了为什么会这样,但我的问题仍然存在 - 我需要调用该存储过程。 有人对我如何做到这一点有任何想法吗? 谢谢。

I'm trying to call a stored procedure with an output parameter from F#, so I need to pass an int? value initialized to null. However, F# is resisting my attempts, saying that the object cannot be null. I've read up on the web as to why that is but my problem remains - I need to call that stored procedure. Has anyone got any ideas as to how I can do it? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幽蝶幻影 2024-07-21 15:15:13

我不相信 F# 可以从 null 进行转换 -> 空可空。 但如果实例化一个 Nullable 对象,它将默认为无值。 这相当于在 C#/VB 中传递 null。

myStoredProc (new System.Nullable<int>())

I do not believe that F# has a conversion from null -> empty Nullable. But if you instantiate a Nullable object, it will default to no value. This is the equivalent of passing null in C#/VB.

myStoredProc (new System.Nullable<int>())
戒ㄋ 2024-07-21 15:15:13

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

One nice thing that F# allows you to do is to declare "generic value" so you don't have to write the lengthly construction of the value all the time.

let gnull = new System.Nullable<_>();;

Now you can just use gnull whenever you need to pass null as a nullable to some function:

> let foo (a:System.Nullable<int>) = 0;;
val foo : System.Nullable<int> -> int

> foo gnull;;
val it : int = 0
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文