Fallthrough der Switch-Anweisung in C#
Die Switch-Anweisung bietet eine Möglichkeit, unterschiedlichen Code basierend auf dem Wert einer angegebenen Variablen auszuführen. Während die Switch-Anweisung mehrere Vorteile gegenüber den if/else if-Konstrukten bietet, besteht eine ihrer Einschränkungen darin, dass sie nicht von einem Fall zum anderen wechseln kann.
In C# erzwingt der Compiler die „Kein Fallthrough“-Regel. Dies bedeutet, dass die Ausführung beim Erreichen eines Falls zum Anfang des nächsten Falls springen muss. Dieses Verhalten gewährleistet Codeklarheit und verhindert die unbeabsichtigte Ausführung mehrerer Fälle.
Betrachten Sie das folgende Beispiel, in dem wir versuchen, eine Zahl mithilfe einer switch-Anweisung in ihre Wortdarstellung umzuwandeln:
switch (number.ToString().Length) { case 3: ans += string.Format("{0} hundred and ", numbers[number / 100]); case 2: int t = (number / 10) % 10; if (t == 1) { ans += teens[number % 10]; break; } else if (t > 1) ans += string.Format("{0}-", tens[t]); case 1: int o = number % 10; ans += numbers[o]; break; default: throw new ArgumentException("number"); }
When Beim Ausführen dieses Codes generiert der Compiler Fehler, die Folgendes anzeigen: „Die Steuerung kann nicht von einer Fallbezeichnung ('case 3:') zu einer anderen übergehen“ und „Die Steuerung kann nicht von einer Fallbezeichnung ('case 2:') zu einem anderen leeres Gehäuse, um den Durchfall zu erzwingen. Beispielsweise könnte Fall 0: im obigen Beispiel durch einen leeren Fall ersetzt werden.
Gehe zu Fall:Das obige ist der detaillierte Inhalt vonKönnen C#-Switch-Anweisungen scheitern, und wenn ja, wie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!