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
Linda HamiltonOriginal
2025-01-03 14:26:46931Durchsuche

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");
}

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!

Stellungnahme:
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