İçerik Tablosu
- Switch Komutlarını Anlama
- C# Switch Komutlarında Dizelerin Kullanımı
- Büyük/Küçük Harf Duyarlılığı
- Okunabilirliği Geliştirmek İçin Switch İfadeleri
- Sonuç
- Sıkça Sorulan Sorular
Switch Komutlarını Anlama
switch
komutu, bir ifadenin değerine bağlı olarak yürütülecek kod bloğunu seçmek için yapılandırılmış bir yol sunar. Birden fazla olası değerle uğraşırken uzun if-else if
zincirlerine göre daha verimli bir alternatiftir. Temel sözdizimi şudur:
switch (ifade)
{
case değer1:
// ifade == değer1 ise yürütülecek kod
break;
case değer2:
// ifade == değer2 ise yürütülecek kod
break;
default:
// Hiçbir durum eşleşmezse yürütülecek kod
break;
}
break
komutu çok önemlidir; sonraki durumlara “devam etmeyi” önler. Olmazsa, yürütme geçerli durum eşleşse bile bir sonraki duruma devam eder.
C# Switch Komutlarında Dizelerin Kullanımı
C# 8’den önce, switch
komutlarında dizelerin kullanılması zahmetli çözümler gerektiriyordu. C# 8, desen eşleştirmesini tanıtarak, switch
komutları içinde doğrudan dize karşılaştırmalarına olanak sağladı ve kod okunabilirliğini ve sürdürülebilirliğini önemli ölçüde artırdı.
string gun = "Pazartesi";
switch (gun)
{
case "Pazartesi":
Console.WriteLine("İş haftasının başlangıcı!");
break;
case "Salı":
case "Çarşamba":
case "Perşembe":
Console.WriteLine("Haftanın ortası!");
break;
case "Cuma":
Console.WriteLine("Neredeyse hafta sonu!");
break;
case "Cumartesi":
case "Pazar":
Console.WriteLine("Haftasonu zamanı!");
break;
default:
Console.WriteLine("Geçersiz gün girişi.");
break;
}
Bu örnek, çeşitli dize değerlerinin nasıl verimli bir şekilde işlendiğini göstermektedir. İç içe geçmiş if
deyimleri olmadan birden fazla durumu gruplandırma yeteneğine dikkat edin.
Büyük/Küçük Harf Duyarlılığı
C#’ın switch
komutlarındaki dize karşılaştırmaları büyük/küçük harfe duyarlıdır. Büyük/küçük harfe duyarsız karşılaştırmalar için, karşılaştırmadan önce diziyi küçük harfe (veya büyük harfe) dönüştürün:
string gun = "pazartesi";
switch (gun.ToLower())
{
case "pazartesi":
Console.WriteLine("İş haftasının başlangıcı!");
break;
// ... diğer durumlar ...
}
Okunabilirliği Geliştirmek İçin Switch İfadeleri
C# 8 ayrıca, daha kompakt bir sözdizimi sunan switch ifadelerini tanıttı. Önceki örnek şu şekilde olur:
string gun = "Pazartesi";
string mesaj = gun switch
{
"Pazartesi" => "İş haftasının başlangıcı!",
"Salı", "Çarşamba", "Perşembe" => "Haftanın ortası!",
"Cuma" => "Neredeyse hafta sonu!",
"Cumartesi", "Pazar" => "Haftasonu zamanı!",
_ => "Geçersiz gün girişi."
};
Console.WriteLine(mesaj);
Switch ifadeleri, özellikle çok sayıda durum söz konusu olduğunda, özlü ve daha okunabilir olmaları nedeniyle genellikle tercih edilir.
Sonuç
C# 8’in desen eşleştirmesi, switch
komutlarında dizelerin kullanımını basitleştirerek, eski if-else if
yaklaşımlarına göre kod okunabilirliğini ve sürdürülebilirliğini artırır. Büyük/küçük harf duyarlılığını unutmayın ve daha zarif kod için switch ifadelerini kullanmayı düşünün.
Sıkça Sorulan Sorular
- S: Switch komutlarında dizeler için uzunluk sınırlaması var mı? Y: Hayır, doğal bir sınırlama yoktur. Çok uzun dizelerin küçük bir performans etkisi olabilir, ancak genellikle önemsizdir.
- S:
break
komutunu atlarsam ne olur? Y: Devam etme olur; yürütme bir sonraki duruma devam eder ve beklenmedik davranışlara neden olabilir. Her zamanbreak
komutlarını ekleyin (veya switch ifadelerini kullanın). - S: Switch ifadeleri her zaman daha mı hızlı? Y: Performans farkı genellikle ihmal edilebilir düzeydedir. Okunabilirliği ve sürdürülebilirliği önceliklendirin; switch ifadeleri genellikle daha açık kodlara yol açar.