2010-02-24 21 views

उत्तर

29

बेनामी प्रकार डिज़ाइन द्वारा अपरिवर्तनीय हैं।

बेनामी प्रकार मूल्यों को पकड़ने के लिए हैं, और एक प्रकार का प्रतिनिधित्व करने वाला एक प्रकार उत्परिवर्तनीय नहीं होना चाहिए।

इसके अलावा, यह उन्हें एक शब्दकोश में अविश्वसनीय बना देगा, क्योंकि सृजन के बाद हैशकोड बदल सकता है।
कई LINQ विधियां शब्दकोश का उपयोग करती हैं, और विशेष रूप से देरी वाले मूल्यांकन के साथ, परिवर्तनीय प्रकार के साथ LINQ सूक्ष्म रहस्यमय बग का कारण बन सकती है।

+0

वह तेज़ था :-) थेंक्स – Marko

+7

ध्यान दें कि वीबी में अनाम प्रकारों को आंशिक रूप से उत्परिवर्तित करने की अनुमति है। वीबी में आप यह बताते हैं कि गुमनाम प्रकार के कौन से हिस्से उत्परिवर्तनीय हैं; जेनरेट कोड हैश कोड/समानता के हिस्से के रूप में उत्परिवर्तनीय बिट्स का उपयोग नहीं करेगा, इसलिए आपको "शब्दकोश में खो गया" समस्या नहीं मिलती है। हमने इन एक्सटेंशन को सी # में लागू नहीं करने का निर्णय लिया। –

+0

मुझे यह नहीं पता था; धन्यवाद। – SLaks

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