Выполните рефакторинг логики c в соответствии с потребностями бизнеса - неправильный ввод должен обрабатываться по-разному.
Например (один из способов сделать это) вы можете заключить два пути в If-Then-Else
блок:
Private Sub EstablishConnection_Click(sender As Object, e As EventArgs) Handles EstablishConnection.Click
Dim DeviceValidFalg As Boolean = True
If DeviceDropDownList.Text <> String.Empty Then
Select Case DeviceDropDownList.Text
Case "USB"
DeviceName = "USB Adapter"
Case "USB1"
DeviceName = "USB HDMI"
Case "USB2"
DeviceName = "HGCV"
Case Else
' Some other code of your choosing here
End Select
' The rest of your logic here
Else
DeviceValidFalg = False
MessageBox.Show("Select a valid device")
End If
Я предпочитаю Case
вместо ElseIf
для простых проверок (как у вас здесь), потому что он чище, его легче читать и, следовательно, легче обслуживать.
Другим подходом может быть ранний Exit Sub
(как отметил @CoderCharmander в комментариях):
Private Sub EstablishConnection_Click(sender As Object, e As EventArgs) Handles EstablishConnection.Click
Dim DeviceValidFalg As Boolean = True
If DeviceDropDownList.Text = String.Empty Then
DeviceValidFalg = False
MessageBox.Show("Select a valid device")
Exit Sub
End If
Select Case DeviceDropDownList.Text
Case "USB"
DeviceName = "USB Adapter"
Case "USB1"
DeviceName = "USB HDMI"
Case "USB2"
DeviceName = "HGCV"
Case Else
' Some other code of your choosing here
End Select
' The rest of your logic here
Лучший рефакторинг - убедиться, что они не могут нажать кнопку (отключить ее) до у них есть действительный вклад! То есть, активируйте кнопку на основе значений различных элементов управления пользовательским вводом.
Приложение (из @ JohnPete22 в комментариях):
If Not String.IsNullOrWhiteSpace(DeviceDropDownList.Text)
вместо DeviceDropDownList.Text <> String.Empty
лучше использует конструкцию VB. Net String
и учитывает случай, когда строка не является Trim
med от ввода. Конечно, удалите Not
для =
во втором примере.