« Switch » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications
 
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:CSharp]]
[[Category:CSharp]]
= Links =
* [[Csharp_8#Switch_expression|Switch expression]]
= Exemple =
<kode lang=csharp>
<kode lang=csharp>
switch (i)
switch (i)
Ligne 19 : Ligne 23 :
         ...
         ...
         return true;
         return true;
    case var x when x > 0 && x < 10:
        ...
        return false;


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

Dernière version du 17 décembre 2023 à 23:55

Links

Exemple

Csharp.svg
switch (i)
{
    case 1:
        ...
        break;

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

    case 4:
        ...
        goto default;

    case 5:
        ...
        return true;

    case var x when x > 0 && x < 10:
        ...
        return false;

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