31 Ocak 2023 Yazarı yhackup 0

C# Pratik Kullanımlar & İpuçları #2 (switch,case) 

Neredeyse tüm dillerde var olan switch, case yapısının güzel bir kullanımı var.

Normalde bu şekilde kullanabiliyoruz. Şuraya minik bir enum yazalım.

       public enum Lang
        {
            cShap = 0,
            Java = 1,
            Swift = 2,
            Pascal = 3
        }

Normalde bu şekilde kullanabiliyoruz.

            string hangidil = string.Empty;
            var kullandigiDil = Lang.cShap;
            switch (kullandigiDil)
            {
                case Lang.cShap:
                    hangidil = "c# kullanıyor..";
                    break;
                case Lang.Java:
                    hangidil = "Java kullanıyor..";
                    break;
                case Lang.Swift:
                    hangidil = "Swift kullanıyor..";
                    break;
                case Lang.Pascal:
                    hangidil = "Pascal kullanıyor..";
                    break;
                default:
                    hangidil = "vallah bilmirem...";
                    break;
            }
            MessageBox.Show(hangidil);

switch, case yapısı bu şekilde daha pratik kullanılabiliyor.

            var kullandigiDil = Lang.cShap;
            string hangidil = kullandigiDil switch
            {
                Lang.cShap => "c# kullanıyor..",
                Lang.Java => "Java kullanıyor..",
                Lang.Swift => "Swift kullanıyor..",
                Lang.Pascal => "Pascal kullanıyor..",
                _ => "vallah bilmirem..."
            };
            MessageBox.Show(hangidil);

Kodunuz bu şekilde kısalır hem de daha temiz görünür.

Ancak bu kullanım C# 8.0 ve daha üstü versiyonlarda kullanılabilir, bu şekilde kullanmak istediğinizde daha eski versiyonu kullanıyorsanız bunun gibi bir hata alırsınız.

Feature ‘recursive patterns’ is not available in C# 7.3. Please use language version 8.0 or greater

Bunun için proje dizinindeki .csproj dosyasını aşıp bu eklemeyi yapmanız gerekir.