Dalam. Net hanya Visual Basic memungkinkan rentang dalam pernyataan switch, tetapi dalam C # tidak ada sintaks yang valid untuk ini.
Mengatasi masalah spesifik Anda di C #, saya akan menyelesaikannya sebagai berikut:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Untuk mengilustrasikan hal ini lebih lanjut, bayangkan Anda memiliki nilai persentase.
Menggunakan masalah Anda sebagai template, Anda mungkin ingin ini terlihat seperti:
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;
}
Namun, karena C # tidak mengizinkan sintaks itu, berikut adalah solusi yang diizinkan C #:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Mungkin perlu sedikit waktu untuk membiasakan diri, tetapi tidak apa-apa setelah Anda memahaminya.
Secara pribadi, saya akan menyambut pernyataan switch untuk memungkinkan rentang.
Masa depan pernyataan saklar C #
Berikut beberapa gagasan yang saya miliki tentang bagaimana pernyataan sakelar dapat ditingkatkan:
Versi A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Versi B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}