C# মান নিয়ন্ত্রণ-প্রবাহ নির্মাণ প্রদান করে — শর্তাবলী (if, ), লুপ (, , ), এবং শাখা (, , ) — প্লাস আধুনিক উন্নতি যেমন switch এক্সপ্রেশন এবং প্যাটার্ন ম্যাচিং যা কোডকে আরও সংক্ষিপ্ত করে তোলে।
switchforforeachwhilebreakcontinuereturnif (score >= 90)
grade = "A";
else if (score >= 80)
grade = "B";
else
grade = "F";
// ternary and null-coalescing
string status = age >= 18 ? "adult" : "minor";
string name = input ?? "default"; // ?? — use default if input is null
name ??= "fallback"; // ??= assign if null
// traditional switch
switch (day)
{
case "Sat":
case "Sun":
type = "weekend";
break; // break required (no fall-through)
default:
type = "weekday";
break;
}
// switch EXPRESSION (C# 8) — concise, returns a value, with pattern matching
string type = day switch
{
"Sat" or "Sun" => "weekend",
_ => "weekday", // _ = default
};
// pattern matching in switch
string describe = obj switch
{
int n when n > 0 => "positive int",
string s => $"string of length {s.Length}",
null => "null",
_ => "other",
};
আধুনিক switch এক্সপ্রেশন সংক্ষিপ্ত (একটি মান প্রদান করে, কোন break নেই), এবং শক্তিশালী প্যাটার্ন ম্যাচিং সমর্থন করে (প্রকার, শর্ত এবং আরও অনেক কিছু ম্যাচ করা) — ঐতিহ্যবাহী switch এর উপর একটি প্রধান উন্নতি।
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
foreach (যেকোনো IEnumerable পুনরাবৃত্তি করা) সংগ্রহের জন্য অলঙ্কৃত লুপ।
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
নিয়ন্ত্রণ প্রবাহ প্রতিটি প্রোগ্রামে যুক্তি প্রকাশের মৌলিক প্রক্রিয়া, তাই C# এর নির্মাণ বোঝা মৌলিক দৈনন্দিন জ্ঞান।
যখন মৌলিকগুলি মান হয়, আধুনিক C# উন্নতিগুলি জানার এবং ব্যবহার করার যোগ্য: switch এক্সপ্রেশন (C# 8+) ঐতিহ্যবাহী switch এর উপর একটি উল্লেখযোগ্য উন্নতি — সংক্ষিপ্ত, মান-প্রদানকারী, ফল-থ্রু বাগ নেই (কোন ভুলে যাওয়া break নেই), এবং প্যাটার্ন ম্যাচিং সমর্থন করে (প্রকার, শর্ত, মান এবং কাঠামোর উপর ম্যাচ করা), যা নেস্টেড if-else চেইনের চেয়ে জটিল শর্তসাপেক্ষ যুক্তি অনেক পরিষ্কার করে তোলে।
null-coalescing অপারেটর (??, ??=) পরিষ্কার null পরিচালনা প্রদান করে, এবং foreach সংগ্রহ পুনরাবৃত্তির জন্য অলঙ্কৃত উপায়।
এই নির্মাণগুলি জানা এবং আধুনিক, আরও প্রকাশক ফর্মগুলি পছন্দ করা (verbose switch বিবৃতির উপর switch এক্সপ্রেশন প্যাটার্ন ম্যাচিং সহ, ডিফল্টগুলির জন্য null-coalescing) পরিষ্কার, অলঙ্কৃত C# লেখার জন্য দৈনন্দিন জ্ঞান।
Switch এক্সপ্রেশন এবং প্যাটার্ন ম্যাচিং বিশেষত আধুনিক C# এর বিবর্তন প্রতিফলিত করে আরও কার্যকারিতামূলক, সংক্ষিপ্ত কোডের দিকে, তাদের গুরুত্বপূর্ণ করে তোলে উভয় ভাল কোড লেখার এবং বর্তমান C# কোডবেস পড়ার জন্য যা এই বৈশিষ্ট্যগুলি ব্যাপকভাবে ব্যবহার করে।