У .Net лише Visual Basic дозволяє діапазони в операторах перемикання, але в C # для цього немає дійсного синтаксису.
Вирішуючи вашу конкретну проблему в C #, я б вирішив її таким чином:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Щоб проілюструвати це далі, уявіть, що у вас є відсоткове значення.
Використовуючи вашу проблему як шаблон, ви можете побажати, щоб це виглядало так:
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;
}
Однак, оскільки C # не дозволяє такий синтаксис, ось рішення, яке дозволяє C #:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Це може зайняти трохи звикання, але це прекрасно, як тільки ви це отримаєте.
Особисто я би вітав оператори перемикання, щоб дозволити діапазони.
Майбутнє операторів перемикання C #
Ось кілька ідей, які я мав про те, як можна вдосконалити оператори перемикання:
Версія А
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Версія B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}