VB.NEt permite que os tipos de dados primitivos e outros possam também conter o valor
Nothing(null ou nulo) além do valor primitivo padrão.
Por exemplo, uma variável do tipo Boolean pode ter três valores: Nothing, True ou False. Para isso,
utilizamos o operador Nullable(Of) ou (?) para declaração de tipo nullable como mostrado na sintaxe a
seguir:
Sintaxe
Dim nome_variavel As Nullable(Of <tipo_dado>) = [Nothing]
Dim nome_variavel As <tipo_dado>? = [Nothing]
Exemplo 1
Imports System
Public Class Program
Public Shared Sub Main()
Dim flag As Boolean? = Nothing
flag = True
Console.WriteLine(flag)
flag = False
Console.WriteLine(flag)
End Sub
End Class
Saída
True
False
Quando esse tipo de dado Nullable é declarado, precisamos utilizar a propriedade HasValue
para verificar se há valor atribuído e a propriedade Value para recuperar seu valor.
Sintaxe
Boolean nome_variavel.HasValue
nome_variavel.Value
Sintaxe
se nome_variavel tem valor, true
se nome_variavel não tem valor, false
Exemplo 2
Imports System
Public Class Program
Public Shared Sub Main()
Dim variavel As Integer? = Nothing
Console.WriteLine(variavel.HasValue)
variavel = True
Console.WriteLine(variavel.Value)
End Sub
End Class
Saída
False
777
Caso a propriedade Value da variável seja acessada diretamente, um erro será lançado como mostrado
abaixo:
Saída
System.InvalidOperationException: Nullable object must have a value.