"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं .NET संग्रह में अनुक्रमित पहुंच के साथ सहसंयोजक व्यवहार कैसे प्राप्त कर सकता हूं?

मैं .NET संग्रह में अनुक्रमित पहुंच के साथ सहसंयोजक व्यवहार कैसे प्राप्त कर सकता हूं?

2025-02-10 को पोस्ट किया गया
ब्राउज़ करें:981

] प्रकार। हालाँकि, यह एक दुविधा पैदा करता है जब यह संग्रह की बात आती है, विशेष रूप से जब हम इलिस्ट इंटरफ़ेस पर विचार करते हैं। दुर्भाग्य से, अंतर्निहित .NET संग्रह जैसे सूची दोनों को गेट और सेट इंडेक्स को लागू करें, जो उन्हें पूरी तरह से सहसंयोजक होने से रोकता है। ]

इस सीमा के बावजूद, अनुक्रमित पहुंच बनाए रखते हुए सहसंयोजक व्यवहार प्राप्त करने के तरीके हैं। How Can I Achieve Covariant Behavior with Indexed Access in .NET Collections?

१। ReadonlyCollections (.net 4.5 से आगे)

ireadonlylist और ireadonlycollection .NET 4.5 में पेश किए गए कोवेरिएंट इंटरफेस हैं। उनके पास केवल एक गेट इंडेसर है, जो उन्हें सहसंयोजक परिदृश्यों के लिए उपयुक्त बनाता है। सूची और readonlycollection दोनों इंटरफेस को लागू करें। कस्टम आवरण

यदि आपको .NET के पहले संस्करणों में अनुक्रमित एक्सेस के साथ एक सहसंयोजक संग्रह की आवश्यकता है, तो आप एक आवरण वर्ग बना सकते हैं। रैपर क्लास एक इलिस्ट को एनकैप्सुलेट करेगा और केवल गेट इंडेक्सर और ienumerable इंटरफेस को उजागर करेगा। T>:

सार्वजनिक स्थिर वर्ग सहसंयोजक { सार्वजनिक स्थैतिक iindexedenumerable ascovariant (यह ilist पूंछ) { नया सहसंयोजक लौटें (पूंछ); } निजी वर्ग CovariantList : iindexedenumerable { निजी पठनीय ilist पूंछ; सार्वजनिक सहसंयोजक (ilist tail) { this.tail = पूंछ; } सार्वजनिक t यह [int index] {get {रिटर्न टेल [इंडेक्स]; }} सार्वजनिक ienumerator getenumerator () {वापसी tail.getEnumerator ();} Ienumerator ienumerable.getEnumerator () {वापसी tail.getEnumerator (); } सार्वजनिक इंट काउंट {get {रिटर्न टेल.कंट; }} } } सार्वजनिक इंटरफ़ेस iindexedenumerable : ienumerable { T यह [int index] {get; } int count {get; } }

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3