C# Language commutateur


Exemple

L'instruction switch est une instruction de contrôle qui sélectionne une section de commutateur à exécuter dans une liste de candidats. Une instruction de commutateur comprend une ou plusieurs sections de commutateur. Chaque section de commutateur contient une ou plusieurs étiquettes de case suivies d'une ou plusieurs instructions. Si aucune étiquette ne contient une valeur correspondante, le contrôle est transféré dans la section default , le cas échéant. La gestion des cas n'est pas prise en charge en C # à proprement parler. Cependant, si une ou plusieurs étiquettes de case sont vides, l'exécution suivra le code du prochain bloc de case contenant du code. Cela permet de regrouper plusieurs étiquettes de case avec la même implémentation. Dans l'exemple suivant, si month est égal à 12, le code dans le case 2 sera exécuté car les étiquettes de case 12 1 et 2 sont regroupées. Si un case bloc est pas vide, une break doit être présent avant le prochain case l' étiquette, sinon le compilateur signaleront une erreur.

int month = DateTime.Now.Month; // this is expected to be 1-12 for Jan-Dec

switch (month)
{
    case 12: 
    case 1: 
    case 2:
        Console.WriteLine("Winter");
        break;
    case 3: 
    case 4: 
    case 5:
        Console.WriteLine("Spring");
        break;
    case 6: 
    case 7: 
    case 8:
        Console.WriteLine("Summer");
        break;
    case 9:     
    case 10: 
    case 11:
        Console.WriteLine("Autumn");
        break;
    default:
        Console.WriteLine("Incorrect month index");
        break;
}

Un case ne peut être étiqueté que par une valeur connue à la compilation (par exemple 1 , "str" , Enum.A ), donc une variable n'est pas une étiquette de case valide, mais une valeur const ou Enum est (ainsi que toute valeur littérale).