In .Net solo Visual Basic consente intervalli nelle istruzioni switch, ma in C # non esiste una sintassi valida per questo.
Affrontando il tuo problema specifico in C #, lo risolverei così:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Per illustrare ulteriormente questo aspetto, immagina di avere un valore percentuale.
Usando il tuo problema come modello, potresti desiderare che questo assomigli a:
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;
}
Tuttavia, poiché C # non consente tale sintassi, ecco una soluzione che C # consente:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Può richiedere un po 'di tempo per abituarsi, ma va bene una volta capito.
Personalmente, accetterei con favore le dichiarazioni di switch per consentire gli intervalli.
Il futuro delle istruzioni switch C #
Ecco alcune idee che avevo su come migliorare le dichiarazioni di switch:
Versione A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Versione B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}