Methods کلاس میں تعریف شدہ فنکشنز ہیں۔ C# میں بھرپور پیرامیٹر کی سہولیات ہیں — اختیاری/نام زد پیرامیٹرز، ref/out/in modifiers، params arrays — اور (ایک جیسے نام کے ساتھ متعدد 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، نام، اور پیرامیٹرز متعین کرتے ہیں۔ Default parameters پیرامیٹرز کو اختیاری بناتے ہیں، اور named arguments آپ کو نام سے پاس کرنے دیتے ہیں (واضح ہے، اختیاری کو نظر انداز کر سکتے ہیں)۔
// 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 میں وسیع پیمانے پر استعمال ہوتا ہے (کامیابی کا flag اور نتیجہ محفوظ طریقے سے واپس کرنا)؛ ref کال کرنے والے کے متغیر میں تبدیلی کی اجازت دیتا ہے؛ in بڑے structs کو کاپی کیے بغیر موثر طریقے سے منتقل کرتا ہے۔
// 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 کو ایک نام شیئر کرنے دیتا ہے، پیرامیٹر کی اقسام/تعداد سے الگ — کمپائلر موافق کو منتخب کرتا ہے۔ params متغیر تعداد میں پیرامیٹرز قبول کرتا ہے۔
Methods C# میں رویے کی بنیادی اکائیاں ہیں، اور ان کی بھرپور پیرامیٹر سہولیات کو سمجھنا لچکدار، بیان کنندہ کوڈ لکھنے کے لیے اہم ہے۔
مethods کی تعریف کرنا (جس میں مختصر expression-bodied syntax شامل ہے)، default اور named parameters استعمال کرنا (اختیاری پیرامیٹرز اور قابل فہم کالز کے لیے)، اور method overloading لاگو کرنا (ایک جیسے نام، مختلف پیرامیٹرز — بدیہی APIs کے لیے جو مختلف پیرامیٹر کی اقسام سے نمٹتے ہیں) روزمرہ کی معلومات ہے۔
Parameter modifiers سمجھنے کے لیے خاص طور پر اہم ہیں: out وسیع پیمانے پر ubiquitous TryParse pattern میں استعمال ہوتا ہے (int.TryParse(s, out var result) — محفوظ طریقے سے کامیابی کا flag اور نتیجہ بغیر exceptions کے واپس کرنا، ایک عام، idiomatic C# pattern)، ref کال کرنے والے کے متغیر میں تبدیلی قابل بناتا ہے، اور in کارکردگی کے لیے بڑے structs کو reference سے منتقل کرتا ہے۔
ان کو سمجھنا — methods، parameter کی سہولیات (اختیاری/named/params)، لچکدار APIs کے لیے overloading، اور ref/out/in modifiers (خاص طور پر out-based TryParse idiom) — دونوں C# methods لکھنے اور بہت سے .NET APIs استعمال کرنے کے لیے بنیادی ہے جو ان خصوصیات پر منحصر ہیں۔
کیونکہ methods اور ان کے parameters تمام C# کوڈ کے لیے مرکزی ہیں، اور چونکہ overloading، optional parameters، اور TryX pattern جیسی خصوصیات مسلسل نظر آتی ہیں، ان میں مہارت کے لیے موثر C# development کے لیے بنیادی، لازمی معلومات ہے۔