जब पैरामीटर वाली विधि को कॉल किया जाता है, तो आपको निम्न तीन विधियों में से किसी एक का उपयोग करके पैरामीटर को विधि में पास करने की आवश्यकता होती है -
संदर्भ पैरामीटर
यह विधि किसी तर्क के स्मृति स्थान के संदर्भ को औपचारिक पैरामीटर में कॉपी करती है। इसका अर्थ है कि पैरामीटर में किए गए परिवर्तन तर्क को प्रभावित करते हैं।
मान पैरामीटर
यह विधि किसी तर्क के वास्तविक मान को फ़ंक्शन के औपचारिक पैरामीटर में कॉपी करती है। इस मामले में, फ़ंक्शन के अंदर पैरामीटर में किए गए परिवर्तनों का तर्क पर कोई प्रभाव नहीं पड़ता है।
मान पैरामीटर में, जब कोई विधि कहा जाता है, तो प्रत्येक मान पैरामीटर के लिए एक नया संग्रहण स्थान बनाया जाता है। वास्तविक मापदंडों के मूल्यों को उनमें कॉपी किया जाता है। इसलिए, विधि के अंदर पैरामीटर में किए गए परिवर्तनों का तर्क पर कोई प्रभाव नहीं पड़ता है।
आइए C# में Value Parameters के लिए एक उदाहरण देखें -
उदाहरण
using System; namespace CalculatorApplication { class NumberManipulator { public void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put temp into y */ } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); /* local variable definition */ int a = 7; int b = 10; Console.WriteLine("Before swap, value of a : {0}", a); Console.WriteLine("Before swap, value of b : {0}", b); /* calling a function to swap the values */ n.swap(a, b); Console.WriteLine("After swap, value of a : {0}", a); Console.WriteLine("After swap, value of b : {0}", b); Console.ReadLine(); } } }
आउटपुट
Before swap, value of a : 7 Before swap, value of b : 10 After swap, value of a : 7 After swap, value of b : 10