Maison >développement back-end >C++ >Comment puis-je récupérer une valeur Enum à l'aide de sa description en C# ?

Comment puis-je récupérer une valeur Enum à l'aide de sa description en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-21 21:21:10305parcourir

How Can I Retrieve an Enum Value Using Its Description in C#?

Amélioration des énumérations C# : récupération des valeurs par description

Cet article présente une technique puissante pour améliorer la fonctionnalité des énumérations C#. Nous nous concentrerons sur la récupération efficace d’une valeur enum à l’aide de son attribut description. Cette approche offre une flexibilité accrue et simplifie le développement de code.

La solution implique une classe d'assistance statique, EnumEx, contenant une méthode générique : GetValueFromDescription. Cette méthode accepte une chaîne de description et le type enum en entrée. Il parcourt ensuite les champs de l'énumération, en utilisant la réflexion pour trouver le DescriptionAttribute. Si une correspondance est trouvée entre la description de l'attribut et la chaîne d'entrée, la valeur enum correspondante est renvoyée.

Si aucun DescriptionAttribute n'est présent, la méthode revient à comparer le nom du champ avec la description de l'entrée. Si une correspondance est trouvée ici, la valeur enum correspondante est renvoyée. Sinon, un ArgumentException est renvoyé (ou la valeur d'énumération par défaut est renvoyée, selon les préférences d'implémentation).

Cette méthode permet une récupération simple des valeurs d'énumération à l'aide de descriptions :

<code class="language-csharp">var panda = EnumEx.GetValueFromDescription<animal>("Giant Panda");</code>

Cette extension améliore considérablement la maintenabilité et la lisibilité du code en offrant un moyen plus propre d'accéder aux valeurs d'énumération en fonction de leurs descriptions.

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!

Déclaration:
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