Heim > Backend-Entwicklung > C++ > Können C#-Switch-Anweisungen scheitern, und wenn ja, wie?

Können C#-Switch-Anweisungen scheitern, und wenn ja, wie?

Linda Hamilton
Freigeben: 2025-01-03 14:26:46
Original
900 Leute haben es durchsucht

Can C# Switch Statements Fall Through, and If So, How?

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");
}
Nach dem Login kopieren

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:
    Die Syntax „Gehe zu Fall“ ermöglicht einen expliziten Fallthrough. Zum Beispiel könnte man goto case 2 verwenden; am Ende von Fall 1: um zu Fall 2: im gegebenen Beispiel zu gelangen.
  1. Zur Standardeinstellung gehen:
  2. Ebenso gehe zu der Standardeinstellung; kann verwendet werden, um auf den Standardfall umzusteigen.
  3. Es ist wichtig zu beachten, dass Fallthrough nicht empfohlen wird, da es möglicherweise zu unklarem und fehleranfälligem Code führt. Im Allgemeinen empfiehlt es sich, if/else oder andere bedingte Konstrukte zu verwenden, wenn mehrere Bedingungen überprüft werden müssen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage