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.
object obj = "hello";
if (obj is string str)
{
Console.WriteLine($"Length of the string: {str.Length}");
}
else
{
Console.WriteLine("Object is not a string");
}
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;
}
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");
}
}
if (obj is Person { Name: "John", Age: 30 })
{
Console.WriteLine("John is 30 years old.");
}
if (obj is Point(0, 0))
{
Console.WriteLine("Point is at the origin.");
}
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.