मान लीजिए मेरे पास एक वर्ग है:
सार्वजनिक वर्ग थिंगमैनेजर {सूची & lt; SomeClass & gt; सामान की सूची; सार्वजनिक शून्य AddToList (कुछ क्लास आइटम) {ItemList.Add (आइटम); } सार्वजनिक शून्य ProcessListItems () {// एक बार में सूची में एक आइटम के माध्यम से जाओ, सूची से आइटम प्राप्त करें, // वर्ग के उद्देश्य के अनुसार आइटम संशोधित करें}}
मान लें कि "कुछ क्लास" है एक काफी बड़े वर्ग वाले विधियों और सदस्यों को जो काफी जटिल हैं (उदाहरण के लिए सूची & lt;> s और arrays, उदाहरण के लिए) और उनमें से एक बड़ी मात्रा में हो सकता है, इसलिए इस कार्यक्रम के आसपास के विशाल डेटा की प्रतिलिपि बनाना महत्वपूर्ण नहीं है।
क्या "AddToList" विधि में "रेफरी" है या नहीं? और क्यों?
यह फिर से सी में पॉइंटर्स सीखने की कोशिश की तरह है ;-) (जो शायद यही है कि मैं क्यों भ्रमित हो रहा हूं, मैं इनको संकेतक से संबंधित करने की कोशिश कर रहा हूं। "कुछ क्लास * आइटम" और "कुछ क्लास *" चर की सूची)
चूंकि कुछ क्लास एक वर्ग है, तो यह स्वचालित रूप से AddToList पद्धति (या अधिक सटीक रूप से, इसका संदर्भ मूल्य से पारित किया जाता है) के संदर्भ से पारित हो जाता है, ताकि ऑब्जेक्ट की प्रतिलिपि नहीं की जा सके। यदि आप ऑब्जेक्ट को संदर्भ बिंदुओं को AddToList विधि में पुन: असाइन करना चाहते हैं तो आपको रेफरीशिप कीवर्ड का उपयोग करना होगा उदा। आइटम = नया कुछ क्लास ();
।
Comments
Post a Comment