W .Net tylko Visual Basic zezwala na zakresy w instrukcjach przełącznika, ale w języku C # nie ma prawidłowej składni.
Rozwiązując twój konkretny problem w C #, rozwiązałbym go w ten sposób:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Aby to dalej zilustrować, wyobraź sobie, że masz wartość procentową.
Używając swojego problemu jako szablonu, możesz chcieć, aby wyglądało to następująco:
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;
}
Jednak ponieważ C # nie zezwala na taką składnię, oto rozwiązanie, na które pozwala C #:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Przyzwyczajenie się do tego może trochę potrwać, ale jak już to zrobisz, będzie dobrze.
Osobiście z zadowoleniem przyjąłbym instrukcje przełączania, które pozwalają na zakresy.
Przyszłość instrukcji przełączania języka C #
Oto kilka pomysłów na to, jak można ulepszyć instrukcje przełączania:
Wersja A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Wersja B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}