Pattern Matching en C#
Pattern Matching en C# permite comprobar tipos, estructuras y condiciones de objetos de forma más expresiva y concisa. Introducido en C# 7 y ampliado en versiones posteriores, simplifica el código de validación y casting evitando errores y haciendo el flujo más claro.
Pattern Matching con is
Puedes comprobar el tipo y hacer un cast seguro en una sola instrucción.
object obj = "Hola Mundo"; if (obj is string texto) { Console.WriteLine($"Longitud: {texto.Length}"); }
Aquí texto
solo existe si obj es string.
Switch Expressions
Puedes usar patrones en expresiones switch de forma concisa.
string resultado = obj switch { string s => $"Es texto: {s}", int n => $"Es entero: {n}", _ => "Tipo desconocido" }; Console.WriteLine(resultado);
Permite asignar valores directamente desde el patrón.
Relational y Logical Patterns
Puedes combinar patrones lógicos para condiciones más avanzadas.
int edad = 25; string categoria = edad switch { < 13 => "Niño", >= 13 and < 18 => "Adolescente", >= 18 => "Adulto", _ => "Desconocido" }; Console.WriteLine(categoria);
Facilita la clasificación sin if-else anidados.
Buenas Prácticas
Usa Pattern Matching para reducir el casting manual y el uso excesivo de if-else. Mantén los patrones simples y legibles. Documenta casos complejos para claridad. Combina patrones relacionales y lógicos para reglas claras. Prefiere switch expressions para transformaciones limpias.