Heim > Backend-Entwicklung > C++ > Wie kann ich Fallthrough-Verhalten in C#-Switch-Anweisungen erreichen?

Wie kann ich Fallthrough-Verhalten in C#-Switch-Anweisungen erreichen?

Linda Hamilton
Freigeben: 2025-01-04 07:29:35
Original
375 Leute haben es durchsucht

How Can I Achieve Fallthrough Behavior in C# Switch Statements?

Können Switch-Anweisungen in C# fehlschlagen?

Switch-Anweisungen in C# führen normalerweise den mit dem übereinstimmenden Fall verknüpften Code aus und verlassen dann den Switch . Es gibt jedoch Fälle, in denen es wünschenswert sein kann, dass ein Fall in einen anderen übergeht, was als „Fallthrough“ bezeichnet wird.

Im bereitgestellten Beispiel versucht die NumberToWords-Methode, eine Zahl in die entsprechende Wortdarstellung umzuwandeln. Es verwendet drei Arrays zur Darstellung von Zahlen, Zehnern und Zehnern. Die Switch-Anweisung berücksichtigt, dass die Länge der eingegebenen Zahl mit dem entsprechenden Fall übereinstimmt:

  • Wenn die Zahl dreistellig ist (Fall 3), wird das Wort für Hunderter angehängt.
  • Wenn Ist die Zahl zweistellig (Fall 2), wird auf Sonderfälle (Zehner oder Zehner) geprüft.
  • Wenn die Zahl einstellig ist (Fall 1), wird die Zahl angehängt Einerplatznummer.

Der C#-Compiler gibt jedoch Fehler aus, da die Switch-Anweisung nicht explizit angibt, wo nach jedem Fall ausgeführt werden soll. Standardmäßig erfordert C#, dass jeder Fall über eine break-Anweisung oder eine goto-Anweisung verfügt, um einen Fallthrough zu verhindern.

Um einen Fallthrough in C# zu erreichen, können Sie die folgenden Techniken verwenden:

  1. Leere Fälle: Definieren Sie einen Fall ohne Code, damit der nächste Fall ausgeführt werden kann automatisch.

    switch (/*...*/) {
     case 0: break; // fall through to case 1
     case 1:
         // do something
         break;
    }
    Nach dem Login kopieren
  2. goto case: Verwenden Sie die goto-Anweisung, um zu einem bestimmten Fall innerhalb des Schalters zu springen.

    switch (/*...*/) {
     case 0: goto case 1;
     case 1:
         // do something
         break;
    }
    Nach dem Login kopieren
  3. goto default: Verwenden Sie die goto default-Anweisung, um zur Standardeinstellung zu springen Fall.

    switch (/*...*/) {
     case 0: goto default;
     default:
         // do something
         break;
    }
    Nach dem Login kopieren

Im ursprünglichen NumberToWords-Beispiel kann goto verwendet werden, um das gewünschte Fallthrough-Verhalten zu erreichen:

switch (number.ToString().Length)
{
    case 3:
        ans += string.Format("{0} hundred and ", numbers[number / 100]);
        goto case 2;
    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]);
        goto case 1;
    case 1:
        int o = number % 10;
        ans += numbers[o];

        break;
    default:
        throw new ArgumentException("number");
}
Nach dem Login kopieren

Während Fallthrough für ein prägnanteres sorgen kann Bei der Implementierung in bestimmten Szenarien ist es wichtig, vorsichtig damit umzugehen. Übermäßiger Fallthrough kann zu verwirrendem und schwer zu wartendem Code führen, daher sollte er mit Bedacht eingesetzt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich Fallthrough-Verhalten in C#-Switch-Anweisungen erreichen?. 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