2009-09-22 9 views
32

मेरे पास निम्न कोड है, जो मैंने सोचा था कि काम करेगा:C++/cli में शून्य प्रकारों का उपयोग कैसे करें?

property Nullable<double> Angle { 
    Nullable<double> get() { 
     return nullptr; 
     } 
} 

यह नहीं है। मैं यह कैसे कर सकता हूं? क्या सी ++/सीएलआई भी शून्य प्रकारों का समर्थन करता है?

उत्तर

51

ठीक है, यह पाया परेशानी का एक बहुत कुछ के बाद:

अशक्त वापस जाने के लिए, बस

return Nullable<double>(); 

में गैर-शून्य वापस जाने के लिए कार्य करें:

return Nullable<double>(12321); 

यह घोषणा करने के लिए महत्वपूर्ण है Nullable<double> के रूप में वापसी मान और Nullable<double>^ नहीं, जैसा कि आप करते हैं, सी # और vb.net के रूप में अन्य भाषाओं का उपयोग करते समय, आपकोके बजाय ValueType के रूप में टाइप दिखाई देगा।

+0

यदि कोई सोचता है, 'नूलबल ^' में 'डबल' के बॉक्स किए गए उदाहरण, या 'नलप्टर' का मान है, न कि 'Nullable ' का उदाहरण नहीं है। सी # आदि बॉक्स किए गए मूल्य प्रकार हस्ताक्षर का समर्थन नहीं करता है, और इस प्रकार केवल 'ValueType' (हालांकि मेटाडेटा में, मूल प्रकार संरक्षित है) देखता है। निरर्थक प्रकारों को उनके वास्तविक मूल्य के साथ बॉक्सिंग नहीं किया जा सकता है, केवल उनके आंतरिक मूल्य या शाब्दिक शून्य के साथ। – IllidanS4

संबंधित मुद्दे