C# Pattern Matching: Switch Expression'dan Relational Pattern'a
# C# Pattern Matching: Switch Expression'dan Relational Pattern'a
Pattern matching, C# 7'den itibaren kod yazarken koşulları daha temiz ve okunabilir hale getiriyor. Switch expression ile başlayıp relational pattern'a kadar ilerleyeceğiz.
Eski if-else yerine daha kısa ve modern bir yazım şekli. Değişkenin değerine göre sonuç döndürüyor.
1int not = 85;2string sonuc = not switch3{4>= 90 => "A",5>= 80 => "B",6>= 70 => "C",7_ => "F"8};9Console.WriteLine(sonuc); // Çıktı: BGördüğün gibi `switch` anahtar kelimesi, değişkeni kontrol ediyor. `=>` işareti sonucu belirtiyor. Alt çizgi `_` ise "diğer tüm durumlar" anlamına geliyor.
Relational pattern, değişkeni sayısal aralıklarla veya karşılaştırmalarla kontrol etmek için kullanılıyor. `>`, `<`, `>=`, `<=` gibi operatörler ile çalışıyor.
1int yas = 25;2string kategori = yas switch3{4< 18 => "Çocuk",5>= 18 and < 65 => "Yetişkin",6>= 65 => "Yaşlı"7};8Console.WriteLine(kategori); // Çıktı: YetişkinBurada `and` operatörü iki şartı birleştiriyor. `< 18 and >= 18` yazamazsın (çelişki), ama `>= 18 and < 65` mantıklı.
Gerçek bir senaryo: Sıcaklık değerine göre uyarı vermek.
1int sicaklik = 28;2string uyari = sicaklik switch3{4< 0 => " Çok soğuk! Dışarı çıkma.",5>= 0 and < 15 => " Soğuk. Ceket giy.",6>= 15 and < 25 => " Normal hava.",7>= 25 and < 35 => " Sıcak. Su iç.",8>= 35 => " Çok sıcak! İçerde kal."9};10Console.WriteLine(uyari); // Çıktı: Sıcak. Su iç.- Eski switch'ten daha kısa ve okunabilir.
- İç içe if-else'den kurtarıyor.
- Derleyici hata kontrol ediyor.
- Kod daha profesyonel görünüyor.
Pattern matching öğrendikten sonra eski yazım şekillerine dönüş zor oluyor.
0 yorum