पैरामीटर्स का उपयोग मेथड से डेटा पास करने और प्राप्त करने के लिए किया जाता है।
मेथड सिंटैक्स घटक
- Access Specifier (एक्सेस स्पेसिफायर): दूसरे क्लास से वेरिएबल/मेथड की विजिबिलिटी निर्धारित करता है (public, private, protected, internal)
- Return Type (रिटर्न टाइप): मेथड द्वारा लौटाए जाने वाले वैल्यू का डेटा टाइप। कोई वैल्यू न लौटाने पर
void - Method Name (मेथड नाम): यूनिक आइडेंटिफायर, केस-सेंसिटिव, क्लास में अन्य आइडेंटिफायर के समान नहीं हो सकता
- Parameter List (पैरामीटर लिस्ट): पैरेंथेसिस में संलग्न, मेथड से डेटा पास/प्राप्त करने के लिए उपयोग होता है। टाइप, ऑर्डर, संख्या को संदर्भित करता है। पैरामीटर्स वैकल्पिक हैं
- Method Body (मेथड बॉडी): आवश्यक गतिविधि पूरी करने के लिए निर्देशों का सेट
उदाहरण: बेसिक मेथड विथ पैरामीटर्स
using System;
public class NumberManipulator {
public int FindMax(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
public static void Main(string[] args) {
int a = 500;
int b = 750;
int ret;
NumberManipulator n = new NumberManipulator();
ret = n.FindMax(a, b);
Console.WriteLine("Max value = " + ret);
}
}
आउटपुट
Max value = 750
पैरामीटर प्रकार
1. वैल्यू पैरामीटर्स (डिफ़ॉल्ट)
void Modify(int x) {
x = 10; // केवल लोकल कॉपी बदलती है
}
int val = 5;
Modify(val);
Console.WriteLine(val); // 5 (अपरिवर्तित)
2. रेफरेंस पैरामीटर्स (ref)
void Modify(ref int x) {
x = 10; // मूल वेरिएबल बदलता है
}
int val = 5;
Modify(ref val);
Console.WriteLine(val); // 10
3. आउट पैरामीटर्स (out)
void GetValues(out int x, out int y) {
x = 10; // असाइन करना आवश्यक
y = 20;
}
GetValues(out int a, out int b);
Console.WriteLine($"{a}, {b}"); // 10, 20
4. पैरामीटर ऐरे (params)
int Sum(params int[] numbers) {
int total = 0;
foreach (int n in numbers) total += n;
return total;
}
Console.WriteLine(Sum(1, 2, 3, 4)); // 10
Console.WriteLine(Sum(new[] { 1, 2, 3 })); // 6
5. ऑप्शनल पैरामीटर्स (डिफ़ॉल्ट वैल्यूज)
void Greet(string name, string greeting = "Hello") {
Console.WriteLine($"{greeting}, {name}!");
}
Greet("World"); // Hello, World!
Greet("World", "Hi"); // Hi, World!
6. नेम्ड आर्गुमेंट्स
void CreateUser(string name, int age = 18, bool isActive = true) { }
CreateUser("John");
CreateUser("Jane", age: 25);
CreateUser("Bob", isActive: false);
पैरामीटर पासिंग नियम
| पैरामीटर प्रकार | कॉल साइट | मेथड में असाइनमेंट | मूल प्रभावित? |
|---|---|---|---|
| वैल्यू (डिफ़ॉल्ट) | val | अनुमत | नहीं |
| ref | ref val | अनुमत | हाँ |
| out | out val | आवश्यक | हाँ |
| in (C# 7.2+) | in val | नहीं (रीड-ओनली) | नहीं |
बेस्ट प्रैक्टिसेस
- वैल्यू टाइप्स के लिए डिफ़ॉल्ट रूप से वैल्यू पैरामीटर्स उपयोग करें
- मूल्य बदलने की आवश्यकता होने पर
ref/outउपयोग करें - बड़े स्ट्रक्स के लिए
in(रीड-ओनली रेफरेंस) पर विचार करें paramsपैरामीटर अंतिम होना चाहिए- ऑप्शनल पैरामीटर्स अंत में होने चाहिए