« Switch » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications |
|||
(3 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 ArgumentOutOfRangeException(nameof(i), i, "message"); | ||
throw new InvalidEnumArgumentException(nameof(i), (int)i, typeof(MyEnum)); | throw new InvalidEnumArgumentException(nameof(i), (int)i, typeof(MyEnum)); | ||
throw new InvalidOperationException("message"); | |||
throw new NotSupportedException($"The value '{i}' is not supported."); | |||
break; | break; | ||
} | } |
Dernière version du 20 octobre 2024 à 12:56
Links
Exemple
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)); throw new InvalidOperationException("message"); throw new NotSupportedException($"The value '{i}' is not supported."); 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; } |