मैं थोड़ा चारों ओर देखा है, लेकिन जैसे कि निम्न कैसे नई सी # 6.0 संकलक कुछ के लिए नई अशक्त प्रचार आदेश टूट जाती है के लिए एक जवाब खोजने के लिए नहीं कर पाए हैं:अशक्त प्रचार ऑपरेटर
BaseType myObj = new DerivedType();
string myString = (myObj as DerivedType)?.DerivedSpecificProperty;
मैं क्या जानना चाहता हूं कि यह वास्तव में इसे कैसे संभालता है।
यह एक नया DerivedType
चर में as
कलाकारों को कैश करता है (अर्थात, यह एक as
डाली एक अशक्त तुलना द्वारा पीछा के लिए सिर्फ वाक्य-चीनी है)।
या यदि यह वास्तव में as
इसे कास्ट करता है, तो शून्य के लिए जांचें, फिर शून्य न करें, पुन: प्रयास करें और आगे बढ़ें।
अच्छा, नहीं। यदि आप सी # डीकंपिलेशन मोड बंद करते हैं और बस जांचें कि आईएल क्या उत्पन्न होता है, तो आप देखेंगे कि यह एक चर का उपयोग नहीं करता है, यह केवल स्टैक पर मान को डुप्लिकेट करने के लिए 'dup' का उपयोग करता है। – hvd
@hvd ऐसा इसलिए है क्योंकि आईएल में संदर्भित केवल संदर्भ प्रकार ऑब्जेक्ट और स्ट्रिंग हैं। – phoog
@phoog मुझे बिल्कुल पता नहीं है कि उस टिप्पणी से आपका क्या मतलब है। आईएल में – hvd