In .Net erlaubt nur Visual Basic Bereiche in switch-Anweisungen, in C # gibt es hierfür keine gültige Syntax.
Wenn Sie Ihr spezifisches Problem in C # angehen, würde ich es folgendermaßen lösen:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Stellen Sie sich zur weiteren Veranschaulichung vor, Sie hätten einen Prozentwert.
Wenn Sie Ihr Problem als Vorlage verwenden, möchten Sie möglicherweise Folgendes sehen:
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;
}
Da C # diese Syntax jedoch nicht zulässt, ist hier eine Lösung, die C # zulässt:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Es kann etwas gewöhnungsbedürftig sein, aber es ist in Ordnung, sobald Sie es bekommen.
Persönlich würde ich switch-Anweisungen begrüßen, um Bereiche zuzulassen.
Die Zukunft der C # -Schalteranweisungen
Hier sind einige Ideen, wie Switch-Anweisungen verbessert werden könnten:
Version A.
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Version B.
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}