इस तरह कोड का एक टुकड़ा के साथ, संकलक c.MyProperty
पर शिकायत:एक शून्य असाइनमेंट के साथ 'असाइन किए गए स्थानीय चर का उपयोग' को ठीक करना। क्यूं कर?
MyClass c;
try { throw new Exception(); }
catch (Exception) { }
c.MyProperty = 2; // "Use of unassigned local variable 'c'".
फिर भी अगर आप प्रारंभ में c
करने के लिए एक null
आवंटित यह शिकायत नहीं करता है:
MyClass c = null;
try { throw new Exception(); }
catch (Exception) { }
c.MyProperty = 2; // no complains this time.
तो, क्यों करता है इस काम? यदि c
को null
असाइन नहीं किया गया था और संकलक ने इसे hypothetically अनुमति दी है, तो c.MyProperty
, पर एक ही अपवाद फेंक दिया जाएगा ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है?
हम्म, यह दिलचस्प है, मेरा अनुमान है कि हालांकि इस कोड (दूसरा संस्करण) अभी भी क्रम में एक अपवाद फेंक होगा .. यह संभावना सिर्फ एक दृश्य स्टूडियो मुद्दा है कि रिक्त काम उठा नहीं है - बस एक अनुमान ? –
http://stackoverflow.com/questions/4770426/non-initialized-vs-null-values-of-reference-types – Haplo
पर एक नज़र डालें, बहुत अच्छी तरह से और खूबसूरती से पूछे जाने वाले प्रश्न – user1451111