C# में कस्टम मेथड्स परिभाषित करना और कॉल करना
कस्टम मेथड (यूजर-डिफाइंड मेथड) कोड का एक नामित ब्लॉक है जो एक विशिष्ट कार्य करता है। यह मॉड्यूलैरिटी, पुन: उपयोग और पठनीयता को बढ़ावा देता है।
मेथड सिंटैक्स
<access_modifier> <return_type> <MethodName>(<parameters>) {
// मेथड बॉडी
return value; // अगर void नहीं
}
उदाहरण: पैलिंड्रोम चेकर (बाइनरी)
using System;
public class Demo {
// बाइनरी रिवर्स फंक्शन
public static long ReverseBits(long num) {
long rev = 0;
while (num > 0) {
rev <<= 1; // बाएं शिफ्ट
if ((num & 1) == 1) // LSB चेक करें
rev ^= 1; // 1 सेट करें
num >>= 1; // दाएं शिफ्ट
}
return rev;
}
// पैलिंड्रोम चेक
public static bool IsBinaryPalindrome(long num) {
return num == ReverseBits(num);
}
public static void Main() {
long num = 5; // बाइनरी: 101
// कस्टम मेथड कॉल
if (IsBinaryPalindrome(num))
Console.WriteLine("Palindrome Number");
else
Console.WriteLine("Not a Palindrome Number");
}
}
आउटपुट
Palindrome Number
मेथड कॉलिंग के प्रकार
| प्रकार | सिंटैक्स | उदाहरण |
|---|---|---|
| स्टैटिक मेथड | ClassName.Method() | Math.Abs(-5) |
| इंस्टेंस मेथड | obj.Method() | list.Add(1) |
| एक्सटेंशन मेथड | obj.Method() (static क्लास में this) | "abc".ToUpper() |
| डेलीगेट/Func | delegate() | Func<int,int> f = x => x*2; f(5) |
| रिफ्लेक्शन | methodInfo.Invoke(obj, args) | डायनामिक इनवोकेशन |
पैरामीटर्स और रिटर्न
- वैल्यू पैरामीटर्स: कॉपी पास होती है (
void M(int x))। - रेफरेंस पैरामीटर्स:
ref/out/in। - पैरामीटर एरे:
params int[] nums। - डिफ़ॉल्ट वैल्यूज:
void M(int x = 10)। - नेम्ड आर्गुमेंट्स:
M(x: 1, y: 2)।
बेस्ट प्रैक्टिसेज
- सिंगल रिस्पॉन्सिबिलिटी: एक मेथड एक काम करे।
- सार्थक नाम:
CalculateTaxनहींCalc। - छोटे मेथड्स (10-15 लाइन्स)।
voidके बजाय रिटर्न वैल्यू प्रीफर करें (टेस्टेबल, कंपोजेबल)।- प्योर फंक्शन्स (नो साइड इफेक्ट्स) जब संभव हो।