जब पैरामीटर्स वाले मेथड को कॉल किया जाता है, तो आपको निम्न तीन तरीकों में से किसी का उपयोग करके पैरामीटर्स को मेथड में पास करना होता है:
रेफरेंस पैरामीटर्स
यह मेथड किसी आर्गुमेंट के मेमोरी लोकेशन का रेफरेंस फॉर्मल पैरामीटर में कॉपी करता है। इसका मतलब है कि पैरामीटर में किए गए परिवर्तन आर्गुमेंट को प्रभावित करते हैं।
वैल्यू पैरामीटर्स
यह मेथड किसी आर्गुमेंट के वास्तविक मान को फंक्शन के फॉर्मल पैरामीटर में कॉपी करता है। इस मामले में, फंक्शन के अंदर पैरामीटर में किए गए परिवर्तनों का आर्गुमेंट पर कोई प्रभाव नहीं पड़ता।
वैल्यू पैरामीटर्स में, जब कोई मेथड कॉल किया जाता है, तो प्रत्येक वैल्यू पैरामीटर के लिए एक नया स्टोरेज लोकेशन बनाया जाता है। वास्तविक पैरामीटर्स के मान उनमें कॉपी किए जाते हैं। इसलिए, मेथड के अंदर पैरामीटर में किए गए परिवर्तनों का आर्गुमेंट पर कोई प्रभाव नहीं पड़ता।
आइए C# में वैल्यू पैरामीटर्स का एक उदाहरण देखें:
उदाहरण
using System; namespace CalculatorApplication { class NumberManipulator { public void swap(int x, int y) { int temp; temp = x; /* x का मान सहेजें */ x = y; /* y को x में डालें */ y = temp; /* temp को y में डालें */ } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); /* लोकल वेरिएबल डेफिनिशन */ int a = 7; int b = 10; Console.WriteLine("Before swap, value of a : {0}", a); Console.WriteLine("Before swap, value of b : {0}", b); /* मानों को स्वैप करने के लिए फंक्शन कॉल करें */ 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