En .Net, solo Visual Basic permite rangos en declaraciones de cambio, pero en C # no hay una sintaxis válida para esto.
Abordando su problema específico en C #, lo resolvería así:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Para ilustrar esto aún más, imagine que tiene un valor porcentual.
Si usa su problema como plantilla, es posible que desee que se vea así:
switch (percentage)
{
case (0 to 19):
break;
case (20 to 39):
break;
case (40 to 69):
break;
case (70 to 79):
break;
case (80 to 100):
break;
default:
break;
}
Sin embargo, dado que C # no permite esa sintaxis, aquí hay una solución que C # sí permite:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Puede tomar un poco acostumbrarse, pero está bien una vez que lo consiga.
Personalmente, agradecería cambiar declaraciones para permitir rangos.
El futuro de las declaraciones de cambio de C #
Aquí hay algunas ideas que tuve de cómo se podrían mejorar las declaraciones de cambio:
Versión A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Versión B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}