« Switch » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications
 
Aucun résumé des modifications
Ligne 21 : Ligne 21 :


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

Version du 16 mars 2021 à 16:33

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