C# معیاری کنٹرول فلو کنسٹرکٹس فراہم کرتا ہے — شرائط (if, )، لوپس (, , )، اور برانچنگ (, , ) — ساتھ ہی جدید بہتریاں جیسے switch expressions اور pattern matching جو کوڈ کو زیادہ مختصر بناتے ہیں۔
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 expression مختصر ہے (قدر واپس کرتا ہے، کوئی break نہیں)، اور طاقتور pattern matching کی سہولت دیتا ہے (اقسام، شرائط، اور مزید سے ملانا) — روایتی 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 expression (C# 8+) روایتی switch کے مقابلے میں ایک نمایاں بہتری ہے — مختصر، قدر واپس کرنے والا، fall-through کی غلطیوں سے محفوظ (بھولے ہوئے break سے نہیں)، اور pattern matching کی سہولت دیتا ہے (اقسام، شرائط، اقدار، اور ڈھانچے سے ملانا)، جو پیچیدہ مشروط منطق کو nested if-else زنجیروں سے کہیں زیادہ صاف ستھرا بناتا ہے۔
null-coalescing operators (??, ??=) صاف null handling فراہم کرتے ہیں، اور foreach مجموعوں کو دہرانے کا روایتی طریقہ ہے۔
ان کنسٹرکٹس کو جاننا اور جدید، زیادہ اظہار کنندہ فارمز کو ترجیح دینا (پرانے switch statements کے بجائے switch expressions with pattern matching، defaults کے لیے null-coalescing) صاف، روایتی C# لکھنے کے لیے روزمرہ کا علم ہے۔
خاص طور پر switch expression اور pattern matching جدید C# کی ترقی کو زیادہ فنکشنل، مختصر کوڈ کی طرف دکھاتے ہیں، جو بہتر کوڈ لکھنے اور موجودہ C# codebases کو پڑھنے کے لیے دونوں اہم ہیں جو ان خصوصیات کو بڑے پیمانے پر استعمال کرتے ہیں۔