IDictionary<TKey, TValue>
IEnumerable<KeyValuePair<TKey, TValue>>
से विरासत प्राप्त करता है, लेकिन IDictionary
किसी कारण से IEnumerable<DictionaryEntry>
से प्राप्त नहीं होता है। मुझे आश्चर्य है क्योंकि? मुझे इस बदसूरत .OfType<DictionaryEntry>()
लिखने से नफरत है जब मुझे IDictionary
के खिलाफ कोई प्रश्न पूछने की आवश्यकता होती है।आईडीनेर (गैर-जेनेरिक) क्यों नहीं है Inumerable <DictionaryEntry> से?
6
A
उत्तर
3
उस परिवर्तन को इंटरफ़ेस के हर मौजूदा कार्यान्वयन को तोड़ देगा (क्योंकि वे इंटरफ़ेस के कुछ तरीकों से अचानक गायब हो जाएंगे)।
इसके अलावा, आईडीने केवल जेनेरिक से पहले समय से विरासत संगतता के लिए मौजूद है। आपको इसे नए कोड में इस्तेमाल नहीं करना चाहिए, जब तक कि बिल्कुल जरूरी न हो। यदि आप वास्तव में ऑब्जेक्ट प्रकारों के साथ काम कर रहे हैं, तो आप IDictionary < ऑब्जेक्ट का उपयोग कर सकते हैं, इसके बजाय > ऑब्जेक्ट करें।
4
क्योंकि IDictionary
एक पुराना (प्री-जेनरिक) इंटरफ़ेस है। इसे बदलना मौजूदा कोड तोड़ देगा। यह एक विरासत है।
तो अंतर्निहित मुद्दा यह है कि आप अभी भी (अभी भी) IDictionary आधारित कक्षाओं का उपयोग क्यों कर रहे हैं, और आप अपग्रेड नहीं कर सकते?
संबंधित मुद्दे
- 1. TreeNodeCollection क्यों नहीं है Inumerable <TreeNode>?
- 2. मॉडल देखें Inumerable <> संपत्ति पोस्ट विधि से वापस शून्य (बाध्यकारी नहीं) आ रही है?
- 3. क्यों नहीं Inumerable <T> लागू करें (टी) लागू करें?
- 4. Inumerable <T> पर सूची <T> का उपयोग करने का क्या फायदा है?
- 5. मेरा LINQ कथन INumerable क्यों लौटा रहा है?
- 6. क्यों Inumerable की ToArray() एक्सटेंशन विधि ArrayTypeMismatchException फेंकता है?
- 7. 'Inumerable <SelectListItem>' प्रकार का कोई व्यूडाटा आइटम नहीं है जिसमें कुंजी 'पेशे'
- 8. हास्केल मानक पुस्तकालय में कोई << क्यों नहीं है?
- 9. Assert.AreEqual मेरे इक्व्यूल्स का उपयोग नहीं करता है INumerable कार्यान्वयन
- 10. कस्टम संग्रह कार्यान्वयन Inumerable
- 11. क्यों (?! ^) बराबर है (? <! ^)?
- 12. iNumerable कैसे हुड के नीचे IObservable से भिन्न है?
- 13. {} <function() {} क्यों है?
- 14. क्यों <th> और <thead> दोनों की सीमा क्यों नहीं दिख रही है?
- 15. कैसे जांचें कि एक सामान्य विधि का एक प्रकार टी है Inumerable <> और लूप?
- 16. क्यों कोई std :: shared_ptr <T[]> विशेषज्ञता नहीं है?
- 17. सूची <T> क्यों धागा-सुरक्षित नहीं है?
- 18. विंडो (और असुरक्षित विन्डो) <script> टैग से उपयोगकर्तास्क्रिप्ट से समान क्यों नहीं है?
- 19. ट्यूपल <T1... TRest> में ट्रस्ट क्यों नहीं है?
- 20. यह निर्धारित करें कि संग्रह प्रकार का प्रकार है INumerable <T>
- 21. "<! -" शैली नियम को क्यों टिप्पणी करता है, लेकिन "<! -" नहीं करता है?
- 22. हमारे पास C12+ में <cstdfloat> क्यों नहीं है?
- 23. 'संरचना Nullable <T>' संरचना क्यों नहीं है?
- 24. <hr /> का रंग परिवर्तन क्यों नहीं है?
- 25. IENumerable <T> IENumerable से क्यों प्राप्त होता है?
- 26. "स्रोत से बाहर" क्यों डिफ़ॉल्ट नहीं है?
- 27. सूची <T> क्यों है IndexOf() सूची <T> से बहुत तेज है।()?
- 28. #in30e <stdio.h> से पहले # आवश्यक क्यों है?
- 29. सूची <Number> क्यों उप-प्रकार की सूची <Object> नहीं है?
- 30. क्यों हैशसेट <T> IReadOnlyCollection <T> लागू नहीं करता है?