Yazılım Mimarileri ve Tasarım Desenleri Üzerine

C# 7.0 – Pattern Matching

C# 7.0

Merhaba,

Bu içeriğimizde C# 7.0 sürümünün en gözde yeniliği olan Pattern Matching özelliği üzerinde duracağız. Detaya girmeden bahsetmek istiyorum ki, bir çok yazılımcı dostumunda beğenerek karşıladığı bu yenilik şahsen 7.0 versiyonu içerisinde diğerlerine nazaran en kullanışlı, en pratik ve en kazançlı bir özellik teşkil etmektedir. Detaylandırdıktan sonra anlaşılacaktır ki, hem gramersel hem de işlevsel olarak bu sürümün mavi boncuğunu hak etmiştir diyebiliriz. Tabi bu nazardan sonra başına ne gelebilir onuda merak etmedim değil 🙂 Neyse hadi gelin şimdi Pattern Matching özelliğinin sırrına vakıf olalım…

Bu özellik temelde tip sorgulama işlemlerinde bizlere pratiklik kazandırma esasına dayanmaktadır. Biliyorsunuz ki, bizler elimizdeki object tiplerin içindeki verileri yahut base class olan yapılar tarafından refere edilmiş nesnelerin tiplerini “is” operatörü tarafından tespit edebilmekteyiz.

Hazır lafını etmişken şöyle “is” operatörünün kullanımını aşağıya alalım.

        static void Main(string[] args)
        {
            object x = 125;
            if (x is string)
            {
                string xx = x as string;
                Console.WriteLine($"x değişkeni string tipindedir.");
            }
            else if (x is int)
            {
                int xx = (int)x;
                Console.WriteLine($"x değişkeni int tipindedir.");
            }
            Console.Read();
        }

Görüldüğü üzere is operatörünü bu şekilde kullanarak verimizin tipini belirlemekte ve “as” yahut “cast” operatörleri aracılığıyla ilgili değer kendi tipinde object içerisinden elde edilmektedir.

İşte burada yapmış olduğumuz önce tip kontrolü(is) ardından ilgili tipte veriyi elde etme(as) işlemleri fazladan kod ve scope yazmamıza sebep olmakta ve kompleks bir çalışma tezahür ettirmektedir. Haliyle Pattern Matching özelliğiyle birazdan göreceğiniz yöntem(ler) sayesinde bu tarz durumlara oldukça pratik ve sade bir çözüm getirilmiştir.

Pattern Matching, bu ve bunun gibi durumlarda kullanacağımız, işimizi kolaylaştırmak ve pratik bir kod inşası sağlamak için desenleri aşağıdaki dört kategoride toplamıştır;

Gördüğünüz gibi Pattern Matching özelliği oldukça taktire şayan bir yeniliktir. Bizleri nasıl bir zahmet ve kod karmaşasından kurtardığına şahit olduk sanırım. Anlaşılan makalemizin sonuna geldik ama size güzel bir haber vererek konumuzu noktalamak istiyorum. Microsoft, Pattern Matching özelliği için süreçte daha çok geliştirileceğini ve bu özellik çerçevesinde daha fazla yenilik veya desen geleceğini bildirmekte ve ucu açık olarak konuyu hafızalara kazımaktadır.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık