vb.net – 将If运算符的结果赋给System.Nullable类型

发布时间:2020-08-04 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了vb.net – 将If运算符的结果赋给System.Nullable类型编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用If运算符( http://msdn.microsoft.com/en-us/library/bb513985(v=VS.100).aspx)将值赋给System.Nullable对象时,如果结果为Nothing(null),则为该对象分配0.

例:

'Expected value is null (Nothing). Actual value assigned is 0.
Dim x As System.Nullable(Of Integer) = If(1 = 0,1,Nothing)

如果x是可空类型,为什么它被赋值为0的默认整数类型.它不应该接收null值吗?

解决方法

值类型上下文中的任何内容都不会解析为该类型的默认值.对于整数,这只是0.

If运算符在其参数类型之间不进行任何转换,它们都被平等对待 – 在您的情况下为Integer.因此你的代码是相同的

Dim x As Integer? = If(1 = 0,0)

要使结果可为空,您需要使类型显式化.

Dim x As Integer? = If(1 = 0,CType(Nothing,Integer?))

总结

以上是编程之家为你收集整理的vb.net – 将If运算符的结果赋给System.Nullable类型全部内容,希望文章能够帮你解决vb.net – 将If运算符的结果赋给System.Nullable类型所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478