Questo non è davvero un problema, ma più di una curiosità che in me non sono stato in grado di risolvere dai miei propri mezzi. Sicuramente non perderò il sonno.Omettendo "Case" da "Seleziona ... Case" Dichiarazione
In VB.NET, la sintassi di istruzione switch è (come documentato su MSDN here):
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Si noti che nella prima riga, Case
è tra parentesi quadre, che significa che è facoltativa.
E infatti, il seguente esempio compila ed esegue nello stesso modo, come se la parola Case
era stato incluso, almeno, negli esempi rudimentali ho provato:
Select myIntVar
Case 0
Return "Nothing"
Case 1
Return "Just one"
Case Else
Return "Something else"
End Select
Quindi la mia domanda è come segue: a parte la sintassi, c'è qualsiasi differenza tra l'apertura di uno switch con Select
e Select Case
?
Nessuno a cui possa pensare. Se 'MSDN' non menziona nulla si potrebbe presumere che non lo faccia. Detesto assumere ... – OneFineDay
domanda interessante, scommetto che "CASE" è facoltativo poiché sembra allineare con una dichiarazione di interruttore C# senza esso comunque (Forse la parte "CASE" è solo un riporto dal vecchio vb), e che probabilmente si compila allo stesso modo in CLR –
Un altro aspetto interessante è che anche se, secondo MSDN, il 'Case' è opzionale, se lo si lascia fuori, Visual Studio lo aggiunge automaticamente per te. –