Johnnie, s'il vous plaît aller à travers le guide msdn sur commutateur . En outre, la spécification du langage C# définit clairement le cas d'erreur à la compilation :
- Si le type de l'expression de commutation est sbyte, byte, short, ushort, int, uint, long, ulong, bool, char, string, ou un type enum, ou s'il s'agit du type nullable correspondant à l'un de ces types, alors c'est l'expression de switch qui est utilisée. ou s'il s'agit du type annulable correspondant à l'un de ces types, c'est alors le type régissant l'instruction switch.
- Sinon, exactement une conversion implicite définie par l'utilisateur (§6.4) doit exister entre le type de l'expression de commutation et l'un des types suivants types gouvernants possibles : sbyte, byte, short, ushort, int, uint, long, ulong, char, string, ou, un type nullable correspondant à l'un de ces types. ces types.
- Sinon, si aucune conversion implicite de ce type n'existe, ou si plusieurs une telle conversion implicite existe, une erreur de compilation se produit.
J'espère que cela vous aidera.
0 votes
Duplication possible de C# - Existe-t-il une meilleure alternative que celle-ci pour "switch on type" ?