মেথড হল একটি ক্লাসে সংজ্ঞায়িত ফাংশন। C# সমৃদ্ধ প্যারামিটার বৈশিষ্ট্য সমর্থন করে — অপশনাল/নাম্ড আর্গুমেন্ট, ref/out/in মডিফায়ার, params অ্যারে — এবং (একই নাম সহ একাধিক মেথড কিন্তু বিভিন্ন প্যারামিটার)।
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
মেথড একটি রিটার্ন টাইপ, নাম এবং প্যারামিটার নির্দিষ্ট করে। ডিফল্ট প্যারামিটার আর্গুমেন্টকে অপশনাল করে তোলে, এবং নাম্ড আর্গুমেন্ট আপনাকে নাম দ্বারা পাস করতে দেয় (পরিষ্কার, অপশনাল স্কিপ করতে পারে)।
// 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 প্যাটার্নে ব্যবহৃত হয় (একটি সাফল্যের ফ্ল্যাগ এবং ফলাফল নিরাপদে ফেরত দেওয়া); ref কলারের ভেরিয়েবল পরিবর্তন করতে দেয়; in কপি ছাড়াই দক্ষতার সাথে বড় স্ট্রাক্ট পাস করে।
// 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
ওভারলোডিং একাধিক মেথডকে একটি নাম শেয়ার করতে দেয়, প্যারামিটার টাইপ/কাউন্ট দ্বারা আলাদা — কম্পাইলার মিলিয়ে দেয়। params একটি পরিবর্তনশীল সংখ্যক আর্গুমেন্ট গ্রহণ করে।
মেথড হল C#-এ আচরণের মৌলিক বিল্ডিং ব্লক, এবং তাদের সমৃদ্ধ প্যারামিটার বৈশিষ্ট্য বোঝা নমনীয়, প্রভাবশালী কোড লেখার জন্য গুরুত্বপূর্ণ।
মেথড সংজ্ঞায়িত করা (সংক্ষিপ্ত expression-bodied সিনট্যাক্স সহ), ডিফল্ট এবং নাম্ড প্যারামিটার ব্যবহার করা (অপশনাল আর্গুমেন্ট এবং পঠনযোগ্য কলের জন্য), এবং মেথড ওভারলোডিং প্রয়োগ করা (একই নাম, বিভিন্ন প্যারামিটার — স্বজ্ঞাত API-র জন্য যা বিভিন্ন আর্গুমেন্ট টাইপ পরিচালনা করে) কীভাবে করতে হয় তা জানা দৈনন্দিন জ্ঞান।
প্যারামিটার মডিফায়ার বোঝা বিশেষভাবে গুরুত্বপূর্ণ: out ব্যাপকভাবে সর্বজনীন TryParse প্যাটার্নে ব্যবহৃত হয় (int.TryParse(s, out var result) — নিরাপদে একটি সাফল্যের ফ্ল্যাগ এবং ফলাফল ফেরত দেওয়া ব্যতিক্রম ছাড়াই, একটি সাধারণ, ভাষাগত C# প্যাটার্ন), ref কলারের ভেরিয়েবল পরিবর্তন করতে সক্ষম করে, এবং in কর্মক্ষমতার জন্য রেফারেন্স দ্বারা বড় স্ট্রাক্ট পাস করে।
এগুলি বোঝা — মেথড, প্যারামিটার বৈশিষ্ট্য (অপশনাল/নাম্ড/params), নমনীয় API-র জন্য ওভারলোডিং, এবং ref/out/in মডিফায়ার (বিশেষত out-ভিত্তিক TryParse ভাষাগত) — C# মেথড লেখা এবং এই বৈশিষ্ট্যগুলির উপর নির্ভরশীল অনেক .NET API ব্যবহার উভয়ের জন্যই মৌলিক।
মেথড এবং তাদের প্যারামিটার সমস্ত C# কোডের কেন্দ্রে থাকায়, এবং ওভারলোডিং, অপশনাল প্যারামিটার এবং TryX প্যাটার্নের মতো বৈশিষ্ট্য ক্রমাগত আবির্ভূত হওয়ায়, সেগুলিতে দক্ষতা অর্জন কার্যকর C# ডেভেলপমেন্টের জন্য মূল, অবশ্যই জানার মতো জ্ঞান।