2016-08-02 7 views
0

Kann ich auf einen Fall im Standard verweisen, anstatt den gesamten Code zu kopieren?In einem C# Schalter, kann ich einen Fall als Standard verwenden?

Zum Beispiel:

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(2): //code here... 
     break; 
    case(3): //code here... 
     break; 
    default: case(2); 
     break; 
} 
+2

Nein, können Sie nicht. Warum entfernst du nicht einfach die 'case (2) 'und gibst den Code in' default'? Es ist nicht notwendig, alle Optionen als "Fall" aufzuführen. –

Antwort

1

Wenn Sie keinen Code im Fall default haben, können Sie einfach Fall 2 weglassen und diesen Code auf den Standard bewegen, wie die anderen Antworten sagen.

Wenn Sie Code haben, der im Fall default ausgeführt werden muss, bevor Sie mit Fall 2 fortfahren möchten, können Sie einen goto verwenden. Hier ein Beispiel mit int:

int n = 5; 
switch(n) 
{ 
    case 1: //code here... 
     break; 
    case 2: //code here... 
     break; 
    case 3: //code here... 
     break; 
    default: 
     //some code 
     goto case 2; 
} 
+2

Oh Gott nein. [Benutze niemals 'goto'] (http://stackoverflow.com/questions/11906056/goto-is-this-bad). – FrankerZ

+0

Dies ist die richtige Antwort und dies ist der Grund, warum eine Goto-Anweisung in C# existiert. –

+0

@DanielFuchs Wenn der Fall für 2 ist _exactly_ das gleiche wie Standard, dann nein, gibt es keinen Grund, dies zu tun. Und Goto sollte sowieso wie die Pest vermieden werden. – Nyerguds

7

Gerade legte es an zweiter Stelle zu halten, gefolgt von default:

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    case(2): 
    default: //code here... 
     break; 
} 

Oder einfach, es überhaupt nicht enthalten. Wenn dieser Fall nicht getroffen wird, wird er trotzdem auf den Standardwert zurückgesetzt.

+0

Oh, ja .. Es könnte ein bisschen zu früh für mich zu arbeiten sein .. – lenny

3

Sie können so tun. Wenn es keinen Fall gibt, wird es an die default.

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    default: 
     break; 
} 

Keine Notwendigkeit

case(2): 
default: //code here... 
    break; 
0

So etwas wie dies zu tun:

switch(n) 
{ 
    case(1): //code here... 
     break; 
    case(3): //code here... 
     break; 
    case(2): 
    default: 
     break; 
} 
0

Wenn Sie die Standard beziehen möchten 2 Fall, können Sie 2. Dann sollte jeder Fall auslassen Fall 2 Sprung zur Groß-/Kleinschreibung

switch(n) 
{ 
    case(1): //code here... 
     break; 

    case(3): //code here... 
     break; 

    default: //case 2 should jump to this section because its not listed in your switch-cases 
     break; 
}