¡Hola! En este artículo veremos cómo usar la construcción when
en C# para filtrar condicionalmente en diferentes contextos.
#1: Uso de when
en la construcción catch
La construcción when
permite agregar condiciones a los bloques catch
, haciendo el manejo de excepciones más flexible.
- Abre tu proyecto en Visual Studio.
- Agrega el siguiente código:
try
{
// Código que puede lanzar una excepción
}
catch (Exception ex) when (ex.Message.Contains("error específico"))
{
// Manejo de la excepción solo si el mensaje contiene "error específico"
Console.WriteLine("Error específico manejado.");
}
catch (Exception ex)
{
// Manejo de todas las demás excepciones
Console.WriteLine("Ocurrió un error: " + ex.Message);
}
#2: Uso de when
en la construcción case
La construcción when
también se puede usar en el operador switch
para agregar condiciones a casos individuales.
Agrega el siguiente método switch
:
int valor = 10;
switch (valor)
{
case int n when n > 0 && n < 10:
Console.WriteLine("El valor está en el rango de 1 a 9.");
break;
case int n when n == 10:
Console.WriteLine("El valor es 10.");
break;
default:
Console.WriteLine("El valor no está en los rangos especificados.");
break;
}
Uso de when
en la construcción if
Aunque when
no se usa directamente en la construcción if
, se puede combinar con otros operadores condicionales para lograr un efecto similar.
Agrega el siguiente método:
if (valor > 0 && valor < 10)
{
Console.WriteLine("El valor está en el rango de 1 a 9.");
}
else if (valor == 10)
{
Console.WriteLine("El valor es 10.");
}
else
{
Console.WriteLine("El valor no está en los rangos especificados.");
}
Ventajas de usar when
El uso de la construcción when
tiene varias ventajas:
- Legibilidad del código: La construcción
when
hace que el código sea más legible y comprensible. - Flexibilidad:
when
permite agregar condiciones adicionales a las construcciones existentes. - Simplificación de la lógica: El uso de
when
ayuda a evitar condiciones anidadas complejas.
Conclusión
La construcción when
en C# es una herramienta poderosa que permite mejorar la legibilidad y flexibilidad del código. Su uso en bloques catch
, operadores switch
y otros contextos hace que los programas sean más fáciles de entender y mantener.