Non è la come usare la parola chiave break
con le dichiarazioni switch
da lingue simili a C. Con un switch
, se si omette il controllo di interruzione, questo passerà al caso successivo. Con Visual Basic Select
, il controllo non passa attraverso; uno break
è già implicito.
Tuttavia, è possibile utilizzarlo come clausola di protezione, per evitare di dover annidare il codice di un altro livello in un blocco if
. Per esempio:
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
Questo è un po 'più bello di questo codice 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
Qualsiasi differenza di prestazioni tra questi due campioni è quasi certamente insignificante rispetto ad altri fattori.
Un altro uso è se si hanno molti casi e uno dei casi è posizionato in modo che una corrispondenza significhi che si desidera interrompere il controllo di tutti gli altri. Questo succede già, quindi potresti avere solo una dichiarazione vuota. Ma potresti anche aggiungere un Exit Select per chiarire ai manutentori che ti aspetti che questo caso non faccia altro.
fonte
2009-12-17 19:56:05
Credo davvero che il secondo esempio sia molto più bello del primo perché il secondo è strutturato e il primo non lo è. Le istruzioni che interrompono il flusso di esecuzione (come Goto, Exits, ecc.) Distruggono il codice. –
@SoMoS: Mi piace avere clausole di guardia all'inizio dei metodi per controllare le condizioni preliminari, ma nel bel mezzo di un caso di selezione, tendo ad essere d'accordo con te sul fatto che il secondo esempio è migliore nella maggior parte dei casi. –