C# 7.0 İle Gelenler - 1 (Pattern ile Switch-Case Yapısı)


C# 7.0 ile bir çok özellik C# ailesine dahil oldu. Bu yazı dizisinde bu aileye dahil olan özelliklerden bahsedeceğim.

Artık switch-case koşullarında istediğimiz yapıda koşul kullanabileceğiz. Bu özellikler MSDN Blog'da şöyle anlatılıyor.



  • Artık bütün tipler switch-case'de kullanılabiliyor.
  • Case kalıplarında çeşitli kalıplar kullanılabiliyor.
  • Pattern'ler case koşullarında kullanılabiliyor. 


  • Örnek: 
    switch(shape)
    {
        case Circle c:
            WriteLine($"circle with radius {c.Radius}");
            break;
        case Rectangle s when (s.Length == s.Height):
            WriteLine($"{s.Length} x {s.Height} square");
            break;
        case Rectangle r:
            WriteLine($"{r.Length} x {r.Height} rectangle");
            break;
        default:
            WriteLine("<unknown shape>");
            break;
        case null:
            throw new ArgumentNullException(nameof(shape));
    }
    MSDN Blog'da yazılanlara göre bir kaç dikkat edilmesi gereken nokta var.
    Case kalıplarının sırası artık önemli.
    Default kalıbı her zaman en son değerlendirilecektir.

    Daha fazlasını okumak için : https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/

    Yorumlar