Trong .Net chỉ Visual Basic cho phép phạm vi trong câu lệnh chuyển đổi, nhưng trong C # không có cú pháp hợp lệ cho điều này.
Giải quyết vấn đề cụ thể của bạn trong C #, tôi sẽ giải quyết nó như vậy:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Để minh họa thêm điều này, hãy tưởng tượng bạn có một giá trị phần trăm.
Sử dụng vấn đề của bạn làm mẫu, bạn có thể muốn điều này giống như sau:
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;
}
Tuy nhiên, vì C # không cho phép cú pháp đó, đây là một giải pháp mà C # cho phép:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Có thể mất một chút thời gian để làm quen, nhưng sẽ ổn khi bạn đã hiểu.
Cá nhân tôi hoan nghênh các tuyên bố chuyển đổi để cho phép phạm vi.
Tương lai của câu lệnh switch C #
Dưới đây là một số ý tưởng tôi có về cách cải thiện các câu lệnh switch:
Phiên bản A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Phiên bản B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}