Maison > développement back-end > C++ > Pourquoi la conversion d'un entier invalide en une énumération en C# ne génère-t-elle pas d'exception ?

Pourquoi la conversion d'un entier invalide en une énumération en C# ne génère-t-elle pas d'exception ?

DDD
Libérer: 2025-01-03 01:10:39
original
432 Les gens l'ont consulté

Why Doesn't Casting an Invalid Integer to an Enum in C# Throw an Exception?

Pourquoi la conversion d'un int en une valeur d'énumération invalide NE lève PAS d'exception

En C#, les énumérations sont essentiellement des types numériques qui mappent un ensemble de valeurs nommées à des constantes entières. Un aspect intrigant des énumérations est leur capacité à accepter n'importe quelle valeur entière, y compris les valeurs qui se situent en dehors de leur plage définie.

Lorsque vous rencontrez une énumération comme :

enum Beer
{
    Bud = 10,
    Stella = 20,
    Unknown
}
Copier après la connexion

Vous pouvez vous attendre à ce que le casting un entier qui n'est pas 10, 20 ou Inconnu pour le type Beer lèverait une exception. Cependant, ce n’est pas le cas. La conversion d'un entier non valide en un type Beer entraîne l'attribution de cette valeur entière à la variable enum.

Considérez le code suivant :

int i = 50;
var b = (Beer) i;

Console.WriteLine(b.ToString());
Copier après la connexion

Lorsque vous exécutez ce code, il génère " 50" à la console. La variable b reçoit la valeur entière 50, ce qui n'est pas une valeur d'énumération valide pour Beer. Cependant, le casting ne fait pas d'exception.

Ce comportement découle d'une décision de conception prise par les créateurs du .NET Framework. Les énumérations sont soutenues par d'autres types de valeur, tels que int, short ou byte. En conséquence, ils peuvent accepter n'importe quelle valeur valide pour ces types de valeur sous-jacents.

Bien que ce comportement puisse être pratique dans certains scénarios, il peut également conduire à des résultats inattendus si vous n'en êtes pas conscient.

Au-delà du comportement par défaut

Pour les situations où vous avez besoin d'une application plus stricte des valeurs d'énumération, il existe des utilitaires et des extensions que vous peut utiliser pour valider et appliquer l'utilisation des valeurs d'énumération définies uniquement. Ces outils peuvent vous aider à éviter les erreurs potentielles et à garantir que vos variables d'énumération ne contiennent que les valeurs prévues.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal