Das ist nicht wirklich ein Problem, sondern eher eine meiner Neugier, die ich nicht mit eigenen Mitteln lösen konnte. Ich werde sicherlich keinen Schlaf darüber verlieren."Case" aus "Select ... Case" auslassen
In VB.NET, die switch-Anweisung Syntax ist (wie auf MSDN dokumentiert here):
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Beachten Sie, dass in der ersten Zeile, Case
in eckigen Klammern ist, was bedeutet, dass es optional ist.
Und in der Tat, das folgende Beispiel kompiliert und ausgeführt in der gleichen Art und Weise, als ob das Case
Schlüsselwort enthalten war, zumindest in den rudimentären Beispielen, die ich versucht habe:
Select myIntVar
Case 0
Return "Nothing"
Case 1
Return "Just one"
Case Else
Return "Something else"
End Select
Daher meine Frage ist, wie follows: Abgesehen von Syntax, gibt es beliebig Unterschied zwischen dem Öffnen einer Switch-Anweisung mit Select
und Select Case
?
Keine, die ich mir vorstellen kann. Wenn "MSDN" nichts erwähnt, könnte man annehmen, dass dies nicht der Fall ist. Ich hasse es anzunehmen ... – OneFineDay
interessante Frage, ich wette, dass "CASE" optional ist, da es scheint mit einer C# switch-Anweisung ohne es sowieso auszurichten (Vielleicht ist der "CASE" Teil nur ein Übertrag von alten Vb), und Es ist wahrscheinlich, dass es in CLR –
auf die gleiche Weise kompiliert. Ein weiterer interessanter Aspekt ist, dass, obwohl das "Case" laut MSDN optional ist, Visual Studio es automatisch für Sie hinzufügt, wenn Sie es auslassen. –