vb.net – 将If运算符的结果赋给System.Nullable类型
发布时间:2020-12-17 07:30:34 所属栏目:百科 来源:网络整理
导读:使用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.Nullabl
使用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?)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |