मैं इस बारे में उत्सुक हूं कि सी # व्यवहार विधि/संदर्भ प्रकारों को किसी विधि में कब गुजरता है। मैं "AddThree" विधि में एक बॉक्स किए गए मान प्रकार को पास करना चाहता हूं। विचार "कॉलर फ़ंक्शन (मुख्य) में प्राप्त करना है" AddThree "के अंतर्गत किए गए संचालन का नतीजा।बॉक्सिंग मान प्रकार को किसी विधि को भेजने के लिए और परिणाम प्राप्त करें
static void Main(string[] args)
{
int age = 3;
object myBox = age;
AddThree(myBox);
// here myBox = 3 but I was expecting to be = 6
}
private static void AddThree(object age2)
{
age2 = (int)age2 + 3;
}
मैं स्ट्रिंग की तरह शुद्ध संदर्भ प्रकार के साथ इस की कोशिश की है और मैं एक ही परिणाम मिलता है। यदि मैं कक्षा में अपने int "लपेटता हूं" और मैं इस उदाहरण में "रैप" कक्षा का उपयोग करता हूं, जैसा कि मैं उम्मीद कर रहा हूं, यानी, मुझे myBox = 6. मिलता है। यदि मैं "AddThree" विधि हस्ताक्षर को संशोधित करने के लिए संशोधित करता हूं रेफरी द्वारा पैरामीटर, यह भी 6 देता है। लेकिन, मैं हस्ताक्षर को संशोधित नहीं करना चाहता हूं या रैपर वर्ग नहीं बनाना चाहता हूं, मैं सिर्फ मूल्य को बॉक्स करना चाहता हूं।
हस्ताक्षर बदलने के बिना ऐसा करने का कोई तरीका नहीं है क्योंकि आपको 'आयु 2'' को 'ref' पैरामीटर होने की आवश्यकता है। – Lee