मेरे पास एक ऑब्जेक्ट है जो प्रोग्राम की मेमोरी स्थिति में है और मेरे पास कुछ अन्य कार्यकर्ता फ़ंक्शन भी हैं जो मैं राज्य को संशोधित करने के लिए ऑब्जेक्ट पास करता हूं। मैं कार्यकर्ता कार्यों के लिए इसे पारित कर रहा हूँ। हालांकि मैं निम्नलिखित समारोह में आया था।
byte[] received_s = new byte[2048];
IPEndPoint tmpIpEndPoint = new IPEndPoint(IPAddress.Any, UdpPort_msg);
EndPoint remoteEP = (tmpIpEndPoint);
int sz = soUdp_msg.ReceiveFrom(received_s, ref remoteEP);
यह मुझे confuses क्योंकि दोनों received_s
और remoteEP
समारोह से लौट रहे हैं सामान। क्यों remoteEP
एक की जरूरत है ref
और received_s
नहीं करता है?
मैं एसी प्रोग्रामर भी हूं इसलिए मुझे अपने सिर से पॉइंटर्स निकलने में समस्या हो रही है।
संपादित करें: ऐसा लगता है कि C # में ऑब्जेक्ट हूड के नीचे ऑब्जेक्ट के लिए पॉइंटर्स हैं। इसलिए जब आप किसी फ़ंक्शन को ऑब्जेक्ट पास करते हैं तो आप पॉइंटर के माध्यम से ऑब्जेक्ट कॉन्टेंट को संशोधित कर सकते हैं और फ़ंक्शन के लिए पास की गई एकमात्र चीज ऑब्जेक्ट के लिए पॉइंटर है इसलिए ऑब्जेक्ट को खुद कॉपी नहीं किया जा रहा है। आप रेफरी या बाहर का उपयोग करते हैं यदि आप फ़ंक्शन को स्विच करना या फ़ंक्शन में एक नई ऑब्जेक्ट बनाना चाहते हैं जो डबल पॉइंटर की तरह है।