यह वीबी 2005 (डॉटनैट 2.0) में काम करता है, लेकिन यह बदसूरत है।
आप इसे सामान्य चर की तरह उपयोग नहीं कर सकते, मैंने सोचा कि यह ऑब्जेक्ट प्रकार की तरह काम कर सकता है लेकिन ऐसा नहीं है।
बल्कि इस से:
dim oInt as object
dim i as integer
if oInt is nothing then
msgbox("int is null")
else
i = cint(oInt)
end if
आप इस किया है।
Dim oInt as nullable(of integer)
dim i as integer
if oInt.HasValue = false then
msgbox("int is null")
else
i = oInt.Value
end if
समस्या यहां है कि यदि आपके चर रिक्त है और आप मूल्य संपत्ति यह एक बिना क्रिया का अपवाद अप barfs आह्वान करने के लिए होता है।
इसलिए उदाहरण के लिए, मेरा पसंदीदा यह है।
AddParamToSQLCmd(sqlCmd, "@SomeID", SqlDbType.Int, 0, ParameterDirection.Input, iif(oInt.HasValue, oInt.Value, DBNull.value))
परिणामस्वरूप एक रनटाइम त्रुटि होगी जब आपका अनुमानित शून्य मूल्य शून्य होगा !!!
इसलिए यहाँ बनाम
नल (पूर्णांक) ऑब्जेक्ट कोड
if oInt.HasValue then
AddParamToSQLCmd(sqlCmd, "@SomeID", SqlDbType.Int, 0, ParameterDirection.Input, oInt.Value)
else
AddParamToSQLCmd(sqlCmd, "@SomeID", SqlDbType.Int, 0, ParameterDirection.Input, dbnull.value)
end if
वस्तु
AddParamToSQLCmd(sqlCmd, "@SomeID", SqlDbType.Int, 0, ParameterDirection.Input, oInt)
शून्य समकक्ष और मुक्केबाजी वीबी 2005 में काम किया। 2008 में हुए बदलावों ने "?" को जोड़ने पर ध्यान केंद्रित किया वाक्यविन्यास, और ऑपरेटर उठाने को लागू करना। ध्यान देने योग्य एक बात, हालांकि, "?" के लिए वह समर्थन है सिंटैक्स वीएस कोड मॉडल/कोड डीओएम में नहीं जोड़ा गया था, इसलिए किसी भी डिजाइनर जेनरेट कोड जो नलबल प्रकारों का उपयोग करता है हमेशा पुराने जेनेरिक वाक्यविन्यास का उपयोग करेगा। –