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?
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.
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.
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;
}