Pattern Matching

Pattern Matching

C# dilinde pattern matching, C# 7.0 ve sonraki sürümlerde tanıtılan güçlü bir özelliktir. Pattern matching, bir değerin belirli bir desene (pattern) uyan veya uymayan bir yapıya sahip olup olmadığını kontrol etme yeteneğini ifade eder. Bu, if-else ifadelerinin ve switch-case bloklarının daha güçlü ve esnek bir versiyonunu sağlar.

  • Değişkenlerde Pattern Matching:
    • Pattern matching, değişkenlerdeki değerleri belirli desenlere göre kontrol etme yeteneğini sağlar.
    • Bu, özellikle null olup olmadığını kontrol etmek için yaygın olarak kullanılır.

object obj = "hello";

if (obj is string str)
{
    Console.WriteLine($"Length of the string: {str.Length}");
}
else
{
    Console.WriteLine("Object is not a string");
}

  • Switch Bloklarında Pattern Matching:
    • Switch bloklarında pattern matching, bir case ifadesinin bir desene göre eşleşip eşleşmediğini kontrol etmek için kullanılabilir.

object obj = "hello";

switch (obj)
{
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    case string str:
        Console.WriteLine($"String: {str}");
        break;
    default:
        Console.WriteLine("Unknown type");
        break;
}

  • Type Pattern Matching:
    • Bir türün desenine göre eşleşip eşleşmediğini kontrol etmek için kullanılır.

void ProcessObject(object obj)
{
    if (obj is int)
    {
        Console.WriteLine("Object is an integer");
    }
    else if (obj is string)
    {
        Console.WriteLine("Object is a string");
    }
    else
    {
        Console.WriteLine("Object is of unknown type");
    }
}

  • Property Pattern Matching:
    • Bir nesnenin özelliklerine göre desenler tanımlayabiliriz.

if (obj is Person { Name: "John", Age: 30 })
{
    Console.WriteLine("John is 30 years old.");
}

  • Positional Pattern Matching:
    • Bir nesnenin belirli bir yapıdaki özelliklerine göre desenler tanımlayabiliriz.

    if (obj is Point(0, 0))
    {
        Console.WriteLine("Point is at the origin.");
    }

    • Var Pattern:
      • var anahtar kelimesi, herhangi bir türden bir değeri saklamak için kullanılabilir. Pattern matching'de, desen eşleştirmesi yapılırken var anahtar kelimesiyle birlikte kullanılabilir.

      if (obj is var value)
      {
          Console.WriteLine($"Value: {value}");
      }

      Pattern matching, C# dilinde güçlü bir özelliktir ve kodun daha okunabilir, esnek ve güvenli olmasını sağlar. Desenler sayesinde, değişkenlerin, türlerin ve nesnelerin belirli özelliklerini ve yapılarını doğrudan kontrol edebiliyor. Pattern matching, kod yazmayı daha kolaylaştırır ve hatalardan arındırır.

      Randevu

      Hakkımda


      Şaban Çetin

      ...

      İletişim Formu


      Sosyal Medya


      ...

      ...

      ...

      © Copyright: www.griadam.com.tr