Meerdere gevallen in switch statement

Is er een manier om door meerdere case statements te vallen zonder herhaaldelijk case value: te zeggen?

Ik weet dat dit werkt:

switch (value)
{
   case 1:
   case 2:
   case 3:
      //do some stuff
      break;
   case 4:
   case 5:
   case 6:
      //do some different stuff
      break;
   default:
       //default stuff
      break;
}

maar ik zou graag zoiets als dit willen doen:

switch (value)
{
   case 1,2,3:
      //Do Something
      break;
   case 4,5,6:
      //Do Something
      break;
   default:
      //Do the Default
      break;
}

Is deze syntaxis die ik'denk van een andere taal, of zie ik iets over het hoofd?

Oplossing

Er is geen syntaxis in C++ of C# voor de tweede methode die u noemt.

Er's niets mis met uw eerste methode. Als u echter zeer grote bereiken hebt, gebruik dan gewoon een reeks if statements.

Commentaren (4)

Deze syntaxis komt uit de Visual Basic Select...Case Statement:

Dim number As Integer = 8
Select Case number
    Case 1 To 5
        Debug.WriteLine("Between 1 and 5, inclusive")
        ' The following is the only Case clause that evaluates to True.
    Case 6, 7, 8
        Debug.WriteLine("Between 6 and 8, inclusive")
    Case Is < 1
        Debug.WriteLine("Equal to 9 or 10")
    Case Else
        Debug.WriteLine("Not between 1 and 10, inclusive")
End Select

U kunt deze syntaxis in C# niet gebruiken. In plaats daarvan moet u de syntaxis uit uw eerste voorbeeld gebruiken.

Commentaren (3)

Een minder bekend facet van switch in C# is dat het afhankelijk is van de operator= en aangezien deze overschreven kan worden zou je iets als dit kunnen hebben:


string s = foo();

switch (s) { case "abc": /.../ break; case "def": /.../ break; }

Commentaren (1)