ใน. 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:
เวอร์ชัน 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;
}