どのプログラミング言語でも、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()
次に、オーバーライド可能なものを選択して、必要な処理を実行できます。たくさんの仕事-しかし、本当にそれが必要な場合は、それを行うことができます。