Pergunta

Aqui estão algumas perguntas que reuni sobre a seleção de saída ...

  1. Existe algum motivo para usar a saída de saída no vb.net?
  2. O motivo tem algo a ver com desempenho?
  3. A saída é a seleção igual a break;?

Exemplo 1

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

end select

Exemplo 2

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

case "John"
'...
exit select

case else

end select
Foi útil?

Solução

Não é o mesmo que usar o break palavra -chave com switch declarações de idiomas do tipo C. Com um switch, se você omitir o controle de quebra, ele cairá no próximo caso. Com um visual básico Select, o controle não cai; uma break já está implícito.

No entanto, você pode usá -lo como uma cláusula de guarda, para evitar a necessidade de nidificar outro nível em um if quadra. Por exemplo:

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

Isso é um pouco melhor do que este código equivalente:

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

Qualquer diferença de desempenho entre essas duas amostras é quase certamente insignificante em comparação com outros fatores.

Outro uso é se você tiver muitos casos, e um dos casos é colocado para que uma correspondência significa que você deseja parar de verificar todos os outros. Isso já acontece e, portanto, você pode ter uma declaração de caso vazia lá. Mas você também pode adicionar uma saída de saída para deixar claro aos mantenedores que você espera que este caso não faça mais nada.

Outras dicas

Bem ... é como usar um goto ... uma vez que você encontrou o caso correto, não adianta "sair" do caso, pois no Visual Basic estará saindo. Em C#, você precisa sair do caso (nesse caso, com uma pausa).

O ponto é que você pode usá -lo no meio do escopo de um caso, algo como:

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

É feio, mas você pode fazer isso ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top