在.Net中,只有Visual Basic允许在switch语句中使用范围,但是在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
{
}
这可能需要一点时间来适应,但是一旦您习惯了就可以了。
就个人而言,我欢迎使用switch语句允许范围。
C#switch语句的未来
这是我对如何改进switch语句的一些想法:
版本A
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;
}