Methods एक class में define किए गए functions हैं। C# समृद्ध parameter features का समर्थन करता है — optional/named arguments, ref/out/in modifiers, params arrays — और (समान नाम लेकिन अलग parameters वाले कई methods)।
public int Add(int a, int b) => a + b; // expression-bodied (concise)
public string Greet(string name, string greeting = "Hello") // default parameter
{
return $"{greeting}, {name}";
}
Greet("Ann"); // "Hello, Ann"
Greet("Ann", greeting: "Hi"); // named argument
Methods एक return type, नाम, और parameters निर्दिष्ट करते हैं। Default parameters arguments को optional बनाते हैं, और named arguments आपको नाम से pass करने देते हैं (स्पष्ट, optionals को skip कर सकते हैं)।
// ref — pass by reference (method can modify the caller's variable)
void Increment(ref int x) { x++; }
int n = 5; Increment(ref n); // n is now 6
// out — for returning multiple values (must be assigned in the method)
bool TryParse(string s, out int result) { result = ...; return true; }
if (int.TryParse("42", out int value)) { } // the common TryX pattern
// in — pass by reference but READ-ONLY (performance for large structs)
void Process(in LargeStruct data) { }
out का व्यापक रूप से TryParse pattern में उपयोग होता है (एक success flag प्लस result को safely लौटाना); ref caller के variable को modify करने की अनुमति देता है; in बड़े structs को copy किए बिना efficiently pass करता है।
// params — variable number of arguments
int Sum(params int[] numbers) => numbers.Sum();
Sum(1, 2, 3, 4); // any number
// OVERLOADING — same name, different parameters
void Print(int x) { }
void Print(string s) { }
void Print(int x, int y) { }
Print(5); // calls the int version — resolved by argument types
Overloading कई methods को एक नाम share करने देता है, parameter types/count द्वारा प्रतिष्ठित — compiler मेल खाने वाले को चुनता है। params arguments की variable संख्या स्वीकार करता है।
Methods C# में behavior के building blocks हैं, और उनके समृद्ध parameter features को समझना flexible, expressive code लिखने के लिए महत्वपूर्ण है।
यह जानना कि methods कैसे define करें (concise expression-bodied syntax सहित), default और named parameters का उपयोग कैसे करें (optional arguments और readable calls के लिए), और method overloading कैसे लागू करें (समान नाम, अलग parameters — अलग argument types को handle करने वाले intuitive APIs के लिए) रोजमर्रा का ज्ञान है।
parameter modifiers को समझना विशेष रूप से महत्वपूर्ण है: out का व्यापक रूप से सर्वव्यापी TryParse pattern में उपयोग होता है (int.TryParse(s, out var result) — exceptions के बिना success flag और result को safely लौटाना, एक सामान्य, idiomatic C# pattern), ref caller के variable को modify करने में सक्षम बनाता है, और in performance के लिए बड़े structs को reference द्वारा pass करता है।
इन्हें समझना — methods, parameter features (optional/named/params), flexible APIs के लिए overloading, और ref/out/in modifiers (विशेष रूप से out-based TryParse idiom) — C# methods लिखने और इन features पर निर्भर कई .NET APIs का उपयोग करने दोनों के लिए मूलभूत है।
चूंकि methods और उनके parameters सभी C# code के केंद्र में हैं, और चूंकि overloading, optional parameters, और TryX pattern जैसे features निरंतर आते हैं, उनमें महारत हासिल करना effective C# development के लिए मूल, अवश्य-जानने योग्य ज्ञान है।