जवाबों:
नहीं, एक अशक्त एक संरचना है। क्या हो रहा है कि अशक्त संरचना के दो मूल्य हैं:
intलिए int?, के DateTimeलिए DateTime?, आदि)।HasValueसंपत्ति है।)जब आप डेटा प्रकार का मान सेट करते हैं, तो संरचना HasValueसही में बदल जाती है।
से Nullable प्रकार (सी # प्रोग्रामिंग गाइड) :
अशक्त प्रकार System.Nullable संरचना के उदाहरण हैं।
तथा
अशक्त प्रकार मूल्य-प्रकार के चर का प्रतिनिधित्व करते हैं जिन्हें नल के मूल्य को सौंपा जा सकता है। आप संदर्भ प्रकार के आधार पर एक अशक्त प्रकार नहीं बना सकते। (संदर्भ प्रकार पहले से ही शून्य मान का समर्थन करते हैं।)
तो, नहीं, वे संदर्भ प्रकार नहीं हैं।
अशक्त प्रकार न तो मूल्य प्रकार हैं और न ही संदर्भ प्रकार। वे मूल्य प्रकारों की तरह अधिक हैं, लेकिन संदर्भ प्रकारों के कुछ गुण हैं।
स्वाभाविक रूप से, अशक्त प्रकारों के लिए सेट किया जा सकता है null। इसके अलावा, एक अशक्त प्रकार एक सामान्य structबाधा को संतुष्ट नहीं कर सकता है । इसके अलावा, जब आप एक अशक्त प्रकार को HasValueसमान के साथ बॉक्स करते हैं, तो आपको एक बॉक्स वाले अशक्त प्रकार के बजाय falseएक nullसूचक मिलता है (एक समान स्थिति अनबॉक्सिंग के साथ मौजूद है)।
ये गुण अशक्त प्रकारों को गैर-मूल्य प्रकार बनाते हैं, लेकिन वे निश्चित रूप से संदर्भ प्रकार नहीं हैं। वे अपने स्वयं के विशेष अशक्त-मूल्य प्रकार हैं।
नहीं, अशक्त प्रकार वास्तव में एक संरचना है। रनटाइम समझदारी से आपके लिए एक शून्य मान की सेटिंग को हैंडल करेगा, एक संदर्भ प्रकार की उपस्थिति देगा, जब यह नहीं है ...।
अशक्त प्रकार संदर्भ प्रकार नहीं हो सकते।