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.