Enum शब्दकोश के रूप में चाबियाँ
enum SomeEnum { One, Two, Three };
SomeEnum के लिए मान लीजिए कि एक enum है Enum करने के लिए कुछ नहीं?
Enum शब्दकोश के रूप में चाबियाँ
enum SomeEnum { One, Two, Three };
SomeEnum के लिए मान लीजिए कि एक enum है Enum करने के लिए कुछ नहीं?
मुझे विश्वास है कि covariance की वजह से है।
संक्षेप में:
aDictionary
एक Dictionary<SomeEnum, SomeClass>
होगा, लेकिन वर्तमान संदर्भ में यह Dictionary<Enum, SomeClass>
के रूप में जाना जाता है।
अपने घोषणा इजाजत दी गई थी, संकलक बाद में आप कर देना चाहिए:
aDictionary.Add(someValueFromAnotherEnumUnrelatedToSomeEnum, aValue);
जो स्पष्ट रूप से शब्दकोश की वास्तविक प्रकार के संबंध में असंगत है।
यही कारण है कि डिफ़ॉल्ट रूप से सह-भिन्नता की अनुमति नहीं है और आपको इसे स्पष्ट रूप से उन मामलों में सक्षम करना होगा जहां यह समझ में आता है।
Dictionary<SomeEnum, SomeClass> aDictionary =
new Dictionary<SomeEnum, SomeClass>();
से असाइन किया जा सकता है इसकी कॉन्वर्सिस +1 मेरे रूपक की संभावित क्रैसनेस बहाना है। एक मुट्ठी हाथ का एक प्रकार है लेकिन आप नहीं सोच सकते कि मुट्ठी नौकरी हाथ का काम है। यह सब नौकरी की आपकी परिभाषा के लिए आता है। – Jodrell
@ जोड्रेल वाह, यह कभी भी सुनाई गई कॉन्वर्सिस को समझाने का सबसे अच्छा तरीका हो सकता है। :) मुझे लगता है कि एमएस को इसे सह (कॉन्ट्रैक्ट) भिन्न एमएसडीएन पेज पर पोस्ट करना चाहिए। – GolfWolf
इसकी घोषणा में एनम एक वर्ग नहीं है जो कुछ ईनम के बराबर है। यह
Dictionary<SomeEnum, SomeClass> aDictionary = new Dictionary<SomeEnum, SomeClass>();
नहीं, लेकिन 'एनम' 'SomeEnum' – GolfWolf
([Enum] पर एक नज़र http://msdn.microsoft.com/en-us/library/system.enum लें:
निष्कर्ष आप प्रकार वास्तव में निर्दिष्ट करने के लिए होता है। aspx)। –
@ एलेसेंड्रो डी'और्रिया [* "गणना के लिए आधार वर्ग प्रदान करता है।" *] (Http://msdn.microsoft.com/en-us/library/system.enum.aspx) – GolfWolf
दस्तावेज़ीकरण की पहली पंक्ति: आधार प्रदान करता है गणना के लिए कक्षा। एक बेस क्लास माता-पिता वर्ग नहीं है? – sblandin