C# Programming

C# Switch Deyimlerde Dize Karşılaştırmalarına Hakim Olma

Spread the love

İçerik Tablosu

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 zaman break 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir