क्या आप अशक्त बढ़ रहे हैं ???
int? a = null;
a++;
इस कथन का सीधा मतलब है कि null++
null + 1।
इस दस्तावेज़ के अनुसार, एक अशक्त प्रकार अपने अंतर्निहित मूल्य प्रकार के लिए मूल्यों की सही सीमा का प्रतिनिधित्व कर सकता है, साथ ही एक अतिरिक्त अशक्त मूल्य भी। अशक्त, स्पष्ट "Nullable of Int32," को किसी भी मान को -2147483648 से 2147483647 पर सौंपा जा सकता है, या यह को शून्य मान सौंपा जा सकता है
यहाँ आप अशक्त वृद्धि कर रहे हैं, तो यह भी शून्य मान नहीं 0 या किसी अन्य पूर्णांक बन जाएगा।
क्यों यह त्रुटि के बजाय रिक्त प्रिंट करता है ??
जब आप अशक्त मान के साथ एक अशक्त प्रकार प्रिंट करते हैं तो यह त्रुटि के बजाय रिक्त प्रिंट करता है क्योंकि आप किसी चर या मान को किसी स्मृति स्थान पर प्रिंट कर रहे हैं। जो शायद शून्य या कोई पूर्णांक हो।
लेकिन जब आप अशक्त का उपयोग करके प्रिंट करने का प्रयास करते हैं Console.WriteLine(null)
, क्योंकि अशक्त एक चर नहीं है, इसलिए यह किसी भी मेमोरी स्थान को संदर्भित नहीं करता है। और इसलिए यह त्रुटि देता है "NullReferenceException"
।
फिर आप किसी भी पूर्णांक का उपयोग करके कैसे प्रिंट कर सकते हैं Console.WriteLine(2);
??
इस स्थिति में, 2 को अस्थायी स्थान पर मेमोरी मिल जाएगी, और सूचक उस मेमोरी स्थान को प्रिंट करने के लिए इंगित करता है।
++
,+=
और+
वेरिएंट को उठा लिया है। इसलिए बयानोंa++;
,a += 1;
औरa = a + 1;
सभी की अनुमति है। प्रत्येक उपजnull
(कोई अपवाद नहीं फेंका गया) यदिa
शुरू में हैnull
।