该篇文章充满错误,新文章请您前往 https://blog.clso.fun/posts/2019-03-19/dot-net-nullable-value-type.html 查阅。
在一般情况下,.NET中的值类型是无法定义为nothing(null)的,比如 dim i as int32 = nothing 虽然并不是错误的,但实际上它完全等同于 dim i as int32 = 0,那么如何定义一个可为nothing的int32呢?
答案就是 nullable(of t) 类型,它是一个结构体,它将数值类型进行封装,并定义一个可空的值类型,且数据转换非常方便。
使用方法:
dim i as nullable(of int32) =1
msgbox(i) '正确
i =nothing
msgbox(i) '发生异常
注意,i不能用is nothing 来检测i是否为空,而是用i.hasvalue属性来检测其是否包含一个值。
另外,一个缩写形式为 dim i as int32? = nothing ,给类型后面加一个问号,也可以达到相同目的。