🖇️Pattern Matching

El Pattern Matching en C# es una característica que permite inspeccionar el tipo o las propiedades de un objeto de manera más expresiva y flexible.

El Pattern Matching permite realizar comprobaciones de tipos y extracciones de valores en una sola operación. Es útil para ejecutar código basado en las propiedades de un objeto sin necesidad de múltiples if-else o switch statements.

🔹Tipos de Pattern Matching

is Pattern: Comprueba si un objeto es de un tipo específico y, opcionalmente, asigna ese objeto a una nueva variable si la comprobación es exitosa.

if (obj is int numero)
{
    Console.WriteLine($"El número es {numero}.");
}

Switch Pattern: Amplía las capacidades del switch permitiendo comparar tipos, valores y estructuras de datos complejas.

switch (obj)
{
    case int i:
        Console.WriteLine($"Es un entero: {i}");
        break;
    case string s when s.Length > 5:
        Console.WriteLine($"Es un string largo: {s}");
        break;
    case null:
        Console.WriteLine("Es null");
        break;
}

Property Patterns: Permite comprobar propiedades específicas de un objeto en la cláusula case de un switch.

Persona persona = new Persona { Nombre = "Juan", Edad = 30 };

switch (persona)
{
    case Persona { Edad: >= 18 }:
        Console.WriteLine($"{persona.Nombre} es mayor de edad.");
        break;
    case Persona { Edad: < 18 }:
        Console.WriteLine($"{persona.Nombre} es menor de edad.");
        break;
}

Tuple Patterns: Utiliza tuplas para realizar comprobaciones de múltiples valores simultáneamente.

var estado = (forma, color);
switch (estado)
{
    case ("cuadrado", "rojo"):
        Console.WriteLine("Es un cuadrado rojo.");
        break;
    case ("círculo", _):
        Console.WriteLine("Es un círculo de cualquier color.");
        break;
}

Última actualización