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 switch
3{
4>= 90 => "A",
5>= 80 => "B",
6>= 70 => "C",
7_ => "F"
8};
9Console.WriteLine(sonuc); // Çıktı: B

Gö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.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1int yas = 25;
2string kategori = yas switch
3{
4< 18 => "Çocuk",
5>= 18 and < 65 => "Yetişkin",
6>= 65 => "Yaşlı"
7};
8Console.WriteLine(kategori); // Çıktı: Yetişkin

Burada `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 switch
3{
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.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz