Будь-якою мовою програмування будьте обережні, використовуючи Nulls. У наведеному вище прикладі показано інше питання. Якщо ви використовуєте тип Nullable, це означає, що змінні, створені з цього типу, можуть містити значення System.DBNull.Value; не те, що воно змінило інтерпретацію встановлення значення за замовчуванням за допомогою "= Нічого" або що Об'єкт значення тепер може підтримувати нульове посилання. Просто попередження ... щасливого кодування!
Ви можете створити окремий клас, що містить тип значення. Об'єкт, створений з такого класу, буде посилальним типом, якому можна присвоїти Нічого. Приклад:
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
Кінцевий клас
'in 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()
Тоді ви можете вибрати і переорієнтувати, щоб зробити це, що вам потрібно. Багато роботи - але якщо вона вам дійсно потрібна, ви можете це зробити.