Почему мне следует использовать выбор выхода?

StackOverflow https://stackoverflow.com/questions/1924128

  •  20-09-2019
  •  | 
  •  

Вопрос

Вот пара вопросов, которые я собрал относительно выбора выхода...

  1. Есть ли причина использовать выбор выхода в VB.NET?
  2. Связана ли причина с производительностью?
  3. Является ли выбор выхода равным break;?

Пример 1

Select case Name
case "Mary"
'...
case "John"
'...
case else

end select

Пример 2

Select case Name
case "Mary"
'...
exit select

case "John"
'...
exit select

case else

end select
Это было полезно?

Решение

Это не то же самое, что использовать break ключевое слово с switch операторы из C-подобных языков.С switch, если вы опустите контроль разрыва, он перейдет к следующему случаю.С помощью Visual Basic Select, управление не проваливается;а break уже подразумевается.

Однако вы можете использовать его в качестве защитного предложения, чтобы избежать необходимости вкладывать код другого уровня в if блокировать.Например:

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If Not SomeCondition Then Exit Select
         'Do something
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

Это немного лучше, чем эквивалентный код:

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If SomeCondition Then
             'Do something
         End If
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

Любая разница в производительности между этими двумя образцами почти наверняка незначительна по сравнению с другими факторами.

Еще одно применение — если у вас много наблюдений, и одно из наблюдений размещено так, что совпадение означает, что вы хотите прекратить проверку всех остальных.Это уже происходит, и поэтому у вас может быть просто пустой оператор case.Но вы также можете добавить параметр «Выбор выхода», чтобы дать понять разработчикам, что вы ожидаете, что этот случай не будет делать ничего другого.

Другие советы

Хорошо...Это похоже на использование goto...Как только вы найдете правильный регистр, нет смысла «выходить» из него, поскольку в Visual Basic он будет отключен.В C# нужно выйти из дела (в данном случае с перерывом).

Дело в том, что вы можете использовать его в середине кейса, например:

Case 1
   Do something
   Do something
   Evaluate
      exit select
   Else
      Do something

Это некрасиво, но ты можешь это сделать...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top