Edit: Es scheint, ich in der Annahme falsch war, dass VB.NET nicht Fall ORing ermöglichen. Ich dachte in C# und IL und es scheint, dass ich falsch lag.
jedoch, wie jemand darauf hingewiesen, der Grund, warum der Code nicht war nicht funktioniert, weil Fall 2 oder 3 wurde 2 oder 3 als eine bitweise Auswertung oder und damit die Bewertung 3.
Zur Klarstellung zur Sache:
2 binary = 0000 0010
3 binary = 0000 0011
2 Or 3 binary = 0000 0011 (= 3)
Ich denke jedoch, dass ich darauf hinweisen sollte, dass man aus Gründen der Leistung solche Konstrukte nicht verwenden sollte. Wenn der Compiler auf Select-Anweisungen stößt (in C# wechseln), wird er versuchen, sie mithilfe von Nachschlagetabellen und dem MSIL-Befehl zu kompilieren, aber in dem Fall, in dem Sie etwas wie den Compiler haben ist nicht in der Lage, das in eine Nachschlagetabelle zu konvertieren, und es muss eine Reihe von Vergleichen verwenden (was wie If .. Else ist).
Der Punkt ist, dass, um die Select-Anweisung wirklich nutzen zu können, die Fälle in diesem Sinne entwickelt werden sollten. Ansonsten ist der einzige Vorteil die Lesbarkeit des Codes.
Ein gut entworfener Schalter ist eine O (1) -Operation, während ein schlecht konstruierter Schalter (der einer Reihe von If..Then..Else-Anweisungen entspricht) eine O (n) -Operation ist.
meine Absicht ist nicht für Fall 0 und 1 zu durchfallen. Aber das Komma ist, was ich suchte. – Llyle
@ downvoter, vorsichtig zu erklären? – JaredPar
-1, weil es die Frage nicht wie angegeben beantwortet. Es gibt vielmehr eine alternative Lösung zu dem vom Fragesteller versuchten. Die Frage ist: Wie interpretiert VB den ODER-Operator in einer Select-Anweisung? Andernfalls muss die Frage bearbeitet werden, um der Antwort zu entsprechen. Aber ich würde das nicht vorschlagen, weil @JohnT die richtige Antwort gegeben hat. – systemovich