C# Switch Case Kullanımı, c sharp programlamada önemli konulardan birisidir. İf else kullandığımız bir çok yerde c sharp switch case kullanımı işimizi görecektir. Ayrıca switch case performans açısından çok fayda sağlayan bir yapıdır. Sağladığı perfomans nedir derseniz şöyle açıklayayım.
Diyelim ki yaptığınız bir işlemde 10 farklı sonuç ve bu 10 farklı sonuç için de o farklı işlem yaptırmanız gerekiyor. Kod olarak şöyle örnek vereyim.
int i = 0; /* işlemler */ if (i == 0) {/* işlemler */} else if (i == 1) {/* işlemler */} else if (i == 2) {/* işlemler */} else if (i == 3) {/* işlemler */} else if (i == 4) {/* işlemler */} else if (i == 5) {/* işlemler */} else if (i == 6) {/* işlemler */} else if (i == 7) {/* işlemler */} else if (i == 8) {/* işlemler */} else if (i == 9) {/* işlemler */}
Bu şekilde olacaktır değil mi?
Şimdi bu şekilde kodlamanın performans açısından bize ne gibi zararı var anlatayım. i değişkenimizin değeri 9 olsun. Kodlar çalışmaya başladığında aynen şu şekilde oluyor.
- i = 0 mı? Değil
- i = 1 mi? Değil
- i = 2 mi? Değil
- i = 3 mü? Değil
- i = 4 mü? Değil
- i = 5 mi? Değil
- i = 6 mi? Değil
- i = 7 mi? Değil
- i = 8 mi? Değil
- i = 9 mı? Evet – İşlemleri yap.
Burada tüm şartlar kontrol edildi. Yani bu demek oluyor ki 9 kere fazladan iş yapıldı. 9 kere kontrol edildi, hiçbiri doğru değildi sonuncusu doğruydu ve işlemlerimiz yapıldı. Burada hiç bu kadar uğraşmasa direk 9 a gitse bize performans sağlamaz mıydı? Sağlardı değil mi? İşte c sharp switch case kullanımı bize bunu sağlıyor. Aynı kodları birde switch case ile yazalım.
switch (i) { case 0: /* işlemler */ break; case 1: /* işlemler */ break; case 2: /* işlemler */ break; case 3: /* işlemler */ break; case 4: /* işlemler */ break; case 5: /* işlemler */ break; case 6: /* işlemler */ break; case 7: /* işlemler */ break; case 8: /* işlemler */ break; case 9: /* işlemler */ break; }
yukarıdaki if else nin switch case ile kullanımı da bu şekildedir. Burada i değişkeni atıyorum 9 ise direk case 9 : bloğuna gidecek ve oradaki işlemleri yapacak. Diğer bloklara hiç uğramayacaktır.
C Sharp Switch Case kullanımında dikkat edilmesi gerekenler
- Sadece tek değişken ile çalışırlar. Yani birden fazla koşul veremezsiniz.
- Koşul olarak verdiğiniz değişkenin türü ne ise case lerde o türden değer alır.
- İf else de olduğu gibi case sınırı yoktur.
- Bazı durumlarda otomatik oluşabilirler.(Visual Studio da, KeyDown eventi içerisinde )
Koşul string ise case lerde string olmalıdır. Örnek;
string s = "mustafa"; switch (s) { case "adad": break; case "sdfsdg": break; }
Ayrıca switch case de ekstradan Default adında bir blok daha vardır. İlk örneğimizden yola çıkarak bahsedeyim. i değişkeni için 9’a kadar değer alabilir diye düşündüğümüzden 9’a kadar yazdık. Ya daha farklı bir değer alırsa ne olacak? Koşulların hiçbiri tutmadığı için hiçbir işlem yapılmayacak. Bu durumun önüne geçmek için, ilk örneğimizdeki switch case’e default bloğunu da ekleyelim.
switch (i) { case 0: /* işlemler */ break; case 1: /* işlemler */ break; case 2: /* işlemler */ break; case 3: /* işlemler */ break; case 4: /* işlemler */ break; case 5: /* işlemler */ break; case 6: /* işlemler */ break; case 7: /* işlemler */ break; case 8: /* işlemler */ break; case 9: /* işlemler */ break; default: MessageBox.Show("Beklenmeyen bir değer geldi"); break; }
Beklemediğimiz bir değer geldiğinde default bloğuna geçecek ve istediğimiz mesajı gösterecektir.
C Sharp Switch Case Kullanımı dersimizde bu kadar dostlar. Diğer derslerimizde görüşmek üzere…
C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız.
Takipte ve sağlıcakla kalın. ;)