La coincidencia de patrones (pattern matching) en C#
En esta lección vas a usar una expresión switch con patrones para comprobar de forma limpia y segura el tipo y el valor de los datos.
Introducción
La coincidencia de patrones (pattern matching) permite comprobar el tipo de un valor, verificar una condición y extraer los datos para usarlos al momento, todo en una sola expresión. Sustituye a la comprobación de tipo seguida de una conversión manual, que es larga y propensa a errores.
La expresión switch de la función Describe comprueba los patrones en orden: null para los datos que faltan, int number when number > 0 para los enteros positivos, string { Length: > 0 } para las cadenas no vacías y _ para todos los demás casos. Con el valor 12 coincide el patrón del entero positivo, y el resultado es positive 12.
Mira cómo funciona
Mueve el control para cambiar el día. El programa salta directamente al case que coincide, o al default si ninguno coincide.
Ejemplo de C# ejecutable
using System;
class Program
{
static string Describe(object? value) => value switch
{
null => "missing",
int number when number > 0 => $"positive {number}",
string { Length: > 0 } text => $"text: {text}",
_ => "other"
};
static void Main() => Console.WriteLine(Describe(12));
}
positive 12Practica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Triangle Classification Classify three side lengths as invalid, equilateral, isosceles, or scalene. Fácil
- Impar, Par o Ninguno Clasifica un número según si es un entero impar, un entero par o ninguno de los dos. Fácil