किसी भी प्रोग्रामिंग भाषा में, नल का उपयोग करते समय सावधान रहें। ऊपर दिया गया उदाहरण एक और मुद्दा दिखाता है। यदि आप एक प्रकार के 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
एंड क्लास
'मेन में ():
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()
तब आप इसे ले सकते हैं और ओवररिएबल्स का चयन कर सकते हैं। काम का बहुत - लेकिन अगर आपको वास्तव में इसकी आवश्यकता है, तो आप इसे कर सकते हैं।