C# standart kontrol akışı yapılarını — koşullar (if, ), döngüler (, , ) ve dallanmalar (, , ) — ve switch expressions ile pattern matching gibi modern geliştirmeleri sunar ve kodu daha özlü hale getirir.
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",
};
Modern switch expression özlü (bir değer döndürür, break yok) ve güçlü pattern matching (türleri, koşulları ve daha fazlasını eşleştirme) destekler — ayrıntılı geleneksel switch üzerinde büyük bir iyileştirme.
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 (herhangi bir IEnumerable üzerine yineleme) koleksiyonlar için deyimsel döngüdür.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Kontrol akışı, her programda mantığı ifade etmenin temel mekanizması olduğundan, C#'ın yapılarını anlamak temel günlük bilgidir.
TemelLer standart olmakla birlikte, modern C# geliştirmeleri bilmek ve kullanmak değerlidir: switch expression (C# 8+) geleneksel switch üzerinde önemli bir iyileştirmedir — özlü, değer döndüren, fall-through hataları yok (unutulan break yok) ve pattern matching (türleri, koşulları, değerleri ve yapıyı eşleştirme) destekler; bu, karmaşık koşullu mantığı iç içe if-else zincirlerinden çok daha temiz hale getirir.
null-coalescing operatörleri (??, ??=) temiz null işleme sağlar ve foreach koleksiyonlar üzerine yinelemenin deyimsel yoludur.
Bu yapıları bilmek ve modern, daha anlatıcı formları tercih etmek (ayrıntılı switch statements yerine pattern matching ile switch expressions, varsayılanlar için null-coalescing) temiz, deyimsel C# yazması için günlük bilgidir.
Switch expression ve pattern matching özellikle, modern C#'ın daha işlevsel, özlü kod yönündeki evrimini yansıtır; bu da onları hem daha iyi kod yazmak hem de bu özellikleri yaygın olarak kullanan mevcut C# kodtabanlarını okumak için anlamak açısından önemli kılmaktadır.