Maison >développement back-end >C++ >Existe-t-il de meilleures alternatives pour simuler un changement de type en C #?
Existe-t-il une meilleure alternative à la commutation en fonction du type?
C # 7 et versions supérieures
Avec l'introduction de C # 7, il peut être commuté pour réaliser le type réel en fonction de la correspondance du mode:
c # 6
<code class="language-csharp">switch(shape) { case Circle c: WriteLine($"圆形,半径为 {c.Radius}"); break; case Rectangle s when (s.Length == s.Height): WriteLine($"{s.Length} x {s.Height} 正方形"); break; case Rectangle r: WriteLine($"{r.Length} x {r.Height} 矩形"); break; default: WriteLine("<未知形状>"); break; case null: throw new ArgumentNullException(nameof(shape)); }</code>
En C # 6, vous pouvez utiliser l'opérateur NameOf () dans l'instruction Switch:
C # 5 et Versions antérieures
<code class="language-csharp">switch(o.GetType().Name) { case nameof(AType): break; case nameof(BType): break; }</code>
Avant C # 5, vous pouvez toujours simuler la commutation en fonction du type, mais cela nécessite une chaîne contenant le nom de type:
L'alternative à choisir dépend des exigences spécifiques de l'application et de la version C # utilisée.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!