VB.NET Выберите... Case Statement Equivalent в С#
Я только начал использовать С#, и у меня есть несколько проблем.
Есть ли способ закодировать эквивалент С# для оператора VB.NET Select следующим образом?
Select Object.Name.ToString()
Case "Name1"
'Do something
Case "Name2"
'Do something else
Case Else
'Do the default action
End Select
Любая помощь будет принята с благодарностью.
Спасибо за вход до сих пор, о чем я могу связать несколько элементов управления с одним обработчиком событий, как в следующем, и я хочу выполнить несколько другое действие для каждого элемента управления:
Private Sub Button_Click(sender as Object, e as EventArgs) _
Handles button1.Click, Button2.Click
'do a general activity
Select CType(sender, Button).Name
Case button1.Name
'do something
Case button2.Name
'do something else
Case Else
'do the defalut action
End Select
End Sub
Есть ли способ сделать вышеуказанный оператор select в С# без использования вложенных ifs?
Ответы
Ответ 1
Я пришел со временем, что некоторые конструкции VB.NET Select...Case
не применяются в С#, и единственный способ - написать много 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
Но в С# нет конструкции 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
для получения требуемого действия.
Причина? С# switch
требует констант для различных case
s. Это отличается от VB.NET Select Case
, который позволяет записывать диапазоны.
Ответ 2
Вы бы искали оператор switch...
switch (Object.Name.ToString())
{
case "Name1":
//Do something
break;
default:
//default
break;
}
Обратите внимание, что перерывы являются импортными, иначе программа будет проходить через ваши случаи. Вы сможете найти это практически на любом представлении С#...
Ответ 3
Используйте switch
.
switch (object.Name.ToString()) {
case "Name1":
break;
//Do something
case "Name2":
break;
//Do something else
default:
break;
//Do the default action
}
И не забывайте, что есть бесплатный инструмент онлайн-конвертации который позволяет конвертировать VB.net в С# и наоборот.