जब IReadOnlyList<T>
.NET 4.5 में पेश किया गया था, एक पल के लिए मैंने सोचा था कि पहेली का लापता हिस्सा आखिरकार जगह में डाला गया था: एक सच्चे पठनीय सूचकांक इंटरफ़ेस को पारित करने का एक तरीका जहां पहले मुझे अपने स्वयं के पढ़ने-योग्य इंटरफेस का उपयोग करना होगा और सब कुछ के चारों ओर रैपर वर्ग बनाते हैं। ,`ILead <T>` `IReadOnlyList <T>` से प्राप्त नहीं है?
IEnumerable<T>
.GetEnumerator()
-> IReadOnlyCollection<T> : IEnumerable<T>
.Count
-> IReadOnlyList<T> : IReadOnlyCollection<T>
.Item[...]
-> IList<T> : IReadOnlyList<T>
.Add(...)
.Clear()
.Contains(...)
(etc)
लेकिन के रूप में यह पता चला है, IList<T>
IReadOnlyList<T>
से विरासत नहीं करता है:
मैं इंटरफ़ेस उम्मीद कर रहा था "प्राकृतिक" पदानुक्रम है, जो आदर्श होगा अंदर रखा करने के लिए किया जा।
क्या इसके लिए कोई कारण है?
जैसा कि आपने पहले ही कहा है कि 'आईआरडोनलीलिस्ट' .NET4.5 में पेश किया गया था, जिस तरह से बाद में 'IList' को .NET में जोड़ा गया था। – HimBromBeere
इसे जांचें: https://social.msdn.microsoft.com/Forums/vstudio/en-US/b4fb991a-3f5c-4923-93d4-7cd5c004f859/new-interfaces-ireadonlylist-and-ireadonlydictionary?forum=netfxbcl –
'सूची <> 'लागू 'IList <>' लेकिन यह केवल पढ़ने के लिए नहीं है, तो इसे 'IReadOnlyList <>' क्यों लागू करना चाहिए? –