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 गर्न दिन्छ (स्पष्ट, optional 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 सुरक्षित रूपमा फर्काउँदै); ref ले caller को variable modify गर्न अनुमति दिन्छ; in ले बिना copy गरी बिग structs 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 एउै नाम साझा गर्न दिन्छ, parameter types/count द्वारा अलग गरिएको — compiler ले मेल खाने एक चुन्छ। params ले arguments को एक चर संख्या स्वीकार गर्छ।
Methods C# मा behavior को निर्माण ब्लक हुन्, र तिनीहरूको समृद्ध parameter features बुझ्नु flexible, expressive code लेख्नको लागि महत्त्वपूर्ण छ।
Methods कसरी define गर्ने भन्ने कुरा जान्नु (concise expression-bodied syntax सहित), default र named parameters प्रयोग गर्नु (optional arguments र readable calls को लागि), र method overloading लागु गर्नु (एउै नाम, फरक parameters — intuitive APIs को लागि जो विभिन्न argument types को हेरेको गर्छन्) दैनिक ज्ञान हो।
parameter modifiers विशेष गरेर बुझ्न महत्त्वपूर्ण छन्: out विस्तृत TryParse pattern मा प्रयोग गरिन्छ (int.TryParse(s, out var result) — सुरक्षित रूपमा एक success flag र result exceptions बिना फर्काउँदै, एक सामान्य, 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 लेख्नु र धेरै .NET APIs प्रयोग गर्नु को लागि मौलिक हो जो यी features मा निर्भर छन्।
Methods र तिनीहरूको parameters सबै C# code को केन्द्रमा छन्, र overloading, optional parameters, र TryX pattern जस्ता features निरन्तर देखिने भएकोले, तिनीहरूलाई आयत्त गर्नु प्रभावकारी C# development को लागि core, must-know ज्ञान हो।