.NetではVisualBasicのみが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;
}