どのプログラミング言語でも、Nullを使用するときは注意してください。上記の例は別の問題を示しています。Nullableの型を使用する場合、それは、その型からインスタンス化された変数が値System.DBNull.Valueを保持できることを意味します。「= Nothing」を使用して値をデフォルトに設定する解釈が変更されたことや、値のオブジェクトがnull参照をサポートできるようになったわけではありません。ただの警告...ハッピーコーディング!
値型を含む別のクラスを作成できます。このようなクラスから作成されたオブジェクトは参照型であり、Nothingを割り当てることができます。例:
Public Class DateTimeNullable
Private _value As DateTime
Public Property Value() As DateTime
    Get
        Return _value
    End Get
    Set(ByVal value As DateTime)
        _value = value
    End Set
End Property
Public Sub New()
    Value = DateTime.MinValue
End Sub
Public Sub New(ByVal dt As DateTime)
    Value = dt
End Sub
Public Overrides Function ToString() As String
    Return Value.ToString()
End Function
エンドクラス
'Main()内:
        Dim dtn As DateTimeNullable = Nothing
    Dim strTest1 As String = "Falied"
    Dim strTest2 As String = "Failed"
    If dtn Is Nothing Then strTest1 = "Succeeded"
    dtn = New DateTimeNullable(DateTime.Now)
    If dtn Is Nothing Then strTest2 = "Succeeded"
    Console.WriteLine("test1: " & strTest1)
    Console.WriteLine("test2: " & strTest2)
    Console.WriteLine(".ToString() = " & dtn.ToString())
    Console.WriteLine(".Value.ToString() = " & dtn.Value.ToString())
    Console.ReadKey()
    
    
    
    
    
次に、オーバーライド可能なものを選択して、必要な処理を実行できます。たくさんの仕事-しかし、本当にそれが必要な場合は、それを行うことができます。