Module Module1

    Sub Main()
        Dim j As Integer
        j = Nothing
        If j = 0 Then
            ' Ten warunek jest zawsze spełniony, ponieważ w przypadku liczb całkowitych
            ' zachodzi automatyczna konwersja między wartością Nothing a 0
            Console.WriteLine("Zmienna całkowita nie może zawierać wartości pustej, j = " & j)
        End If

        Dim i As Nullable(Of Integer)
        If Not i.HasValue Then
            ' Warunek jest spełniony, ponieważ zmiennej nie przypisano wartości
            Console.WriteLine("Zmienna i zawiera wartość pustą")
        End If

        ' Przypisujemy wartość. Zauważmy, że trzeba ją przypisać bezpośrednio zmiennej i,
        ' a nie i.Value. Właściwość i.Value jest przeznaczona tylko do odczytu i zawsze
        ' odzwierciedla bieżący obiekt, jeśli nie jest to Nothing.
        i = 100
        If i.HasValue Then
            ' Warunek jest spełniony, ponieważ obecnie zmienna zawiera wartość (100)
            Console.WriteLine("Zmienna całkowita i = " & i.Value)
        End If

        Console.ReadLine()
    End Sub

End Module
