मैं Array.cs
के लिए स्रोत कोड के माध्यम से जा रहा था, जब मैंने पढ़ा कि Array.Copy()
यह गारंटी प्रदान नहीं करता है कि एक प्रति सफल होगी और वास्तव में मूल उदाहरण को दूषित कर सकता है (अगर मुझे सही करें मैं यहाँ गलत हूँ)। मन की शांति प्रदान करने के लिए, ConstrainedCopy()
वही प्राप्त करने लगता है।ऐरे। कॉपी और ऐरे। कॉन्स्ट्रेनडॉपी - सी #
मेरा प्रश्न है:
1> क्यों किसी को भी Array.Copy()
का प्रयोग करेंगे अगर यह डेटा की एक सफल हस्तांतरण की गारंटी और संभवतः मूल उदाहरण चोट करने के लिए चल रहा प्रतीत नहीं होता है? असल में, सभी संग्रह वर्ग उनके उदाहरण आकार को बढ़ाने के लिए Array.Copy()
का उपयोग करते प्रतीत होते हैं। ConstrainedCopy()
का उपयोग क्यों न करें
2>ConstrainedCopy()
का उपयोग करने की लागत कितनी होगी? मुझे लगता है कि ConstrainedCopy()
में और तर्क जोड़ा जाएगा?
क्या आप समझा सकते हैं कि उन चरम परिस्थितियों में क्या अपवाद हो सकते हैं? अन्यथा हम नहीं जान पाएंगे कि हमारा परिदृश्य एक है जहां हमें चिंता करने की ज़रूरत है। – Gabe
टॉच, स्मृति निष्पादन से बाहर की तरह कुछ प्रतिलिपि की विफलता का कारण बन सकता है, इनमें से अधिकतर परिस्थितियां प्रतिलिपि विधि के दायरे से बाहर हैं और आमतौर पर एक बड़ी समस्या का संकेत हैं। – BentOnCoding
प्रतिलिपि शुरू होने से पहले 'कॉपी' विधि से फेंकने वाले अधिकांश अपवाद, इसलिए आपको रेंज या वाईप मेलसमैच से बाहर इंडेक्स से बचाने के लिए 'अवरोधित कॉपी' की आवश्यकता नहीं है। एकमात्र संभावित अपवाद जो मैं सोच सकता हूं कि मध्य-प्रतिलिपि हो सकती है 'अमान्यकास्ट अपवाद' और 'थ्रेडएबॉर्ट अपवाद'। – Gabe