visual basic.net 2019-判断null,is null
作者:互联网
Nothing 关键字(Visual Basic)
表示任意数据类型的默认值。 对于引用类型,默认值为 null 引用。 对于值类型,默认值取决于值类型是否可以为 null。
对于不可为 null 的值类型,Visual Basic 中的 Nothing 不同于C#中的 null。 在 Visual Basic 中,如果将不可为 null 的值类型的变量设置为 Nothing,则该变量将设置为其声明的类型的默认值。 在C#中,如果将不可为 null 的值类型的变量分配到 null,则会发生编译时错误。
Nothing 表示数据类型的默认值。 默认值取决于变量是值类型还是引用类型。
值类型的变量直接包含其值。 值类型包括所有数值数据类型、Boolean、Char、Date、所有结构和所有枚举。 引用类型的变量存储对内存中对象的实例的引用。 引用类型包括类、数组、委托和字符串。
如果变量是值类型,则 Nothing 的行为取决于变量是否为可为 null 的数据类型。 若要表示可以为 null 的值类型,请将 ? 修饰符添加到类型名称。 将 Nothing 分配给可以为 null 的变量会将值设置为 null。 有关详细信息和示例,请参阅可以为 null 的值类型。
如果变量是不可为 null 的值类型,则将 Nothing 分配给它会将它设置为其声明类型的默认值。 如果该类型包含变量成员,则它们都设置为其默认值。
引用类型肯定是可以为nothing的
可以为 Null 的值类型 (Visual Basic)
有时,使用在某些情况下没有定义值的值类型。 例如,数据库中的字段可能必须区分具有有意义的赋值和没有赋值。 可以扩展值类型以获取其正常值或空值。 这种扩展称为空类型。
每个空值类型都是从泛型Nullable结构构造的。 考虑跟踪与工作相关的活动的数据库。 下面的示例构造一个可Booleannull 的类型,并声明该类型的变量。 可以通过三种方式编写声明:
Dim ridesBusToWork1? As Boolean
Dim ridesBusToWork2 As Boolean?
Dim ridesBusToWork3 As Nullable(Of Boolean)
综合示例
Imports System
Class Test
Private t As Integer
Sub New(ByVal tv As Integer)
'构造函数
Me.t = tv
End Sub
Sub New()
'构造函数
Me.t = 0
End Sub
End Class
Module Program
Sub Main(args As String())
Dim x1? As Boolean
Dim x2? As Boolean = False
Dim x3? As Boolean = New Boolean
Dim t1 As Test
Dim t2 As Test = New Test(20)
Dim t3 As Test = New Test
Console.WriteLine($"t1 is nothing:{t1 Is Nothing} {vbCrLf}
t2 is nothing:{t2 Is Nothing} {vbCrLf}
t3 is nothing:{t3 Is Nothing} {vbCrLf}")
Console.WriteLine($"x1 is nothing:{x1 Is Nothing} {x1} {vbCrLf}
x2 is nothing:{x2 Is Nothing} {x2} {vbCrLf}
x3 is nothing:{x3 Is Nothing} {x3} {vbCrLf}")
End Sub
End Module
t1 is nothing:True
t2 is nothing:False
t3 is nothing:False
x1 is nothing:True
x2 is nothing:False False
x3 is nothing:False False
F:\learn\vblearn2-console\bin\Debug\netcoreapp3.1\vblearn2-console.exe (进程 200)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
标签:nothing,默认值,Dim,Nothing,visual,2019,类型,null 来源: https://blog.csdn.net/AI_LX/article/details/112506143