Por que devo usar a seleção de saída?
-
20-09-2019 - |
Pergunta
Aqui estão algumas perguntas que reuni sobre a seleção de saída ...
- Existe algum motivo para usar a saída de saída no vb.net?
- O motivo tem algo a ver com desempenho?
- 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
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 ...