Switch

De Banane Atomic
Aller à la navigationAller à la recherche
Csharp.svg
switch (i)
{
    case 1:
        ...
        break;

    case 2:
    case 3:
        ...
        goto case 1;

    case 4:
        ...
        goto default;

    case 5:
        ...
        return true;

    default:
        throw new ArgumentOutOfRangeException(nameof(i), i, "message");
        throw new InvalidEnumArgumentException(nameof(i), (int)i, typeof(MyEnum));
        break;
}

// depuis VS 2017, switch accèpte d'autres types que int, char et string
switch (myObject)
{
    case MyType1 object1:  // si myObject est du type MyType1 → cast dans object1
        break;

    case MyType2 object2 when object2.MyProp > 0:  // si myObject est du type MyType2 → cast dans object2 puis test object2.MyProp > 0
        break;
}