Я со временем обнаружил, что некоторые конструкции VB.NET Select...Case
не применяются в C #, и единственный выход - написать много ifs.
Например, в VB.NET вы можете написать:
Dim num as Integer = 5
Select Case num
Case 1 to 10
'do something
Case 11 to 20
'do another thing
Case Else
'do the default
End Select
Но в C # нет конструкции switch
, которая позволяла бы вам делать что-то подобное. Вам придётся закодировать код примерно так:
int num = 5;
switch (num)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
//do something
break;
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
//do something else
break;
default:
//do the default
break;
}
Или, если вы работаете с Double
или любым типом, который состоит из непрерывных, а не дискретных значений, вам придется использовать if
s, чтобы получить требуемое действие.
Причина? C # switch
требует констант для различных case
s. Это отличается от Select Case
VB.NET, который позволяет записывать диапазоны.