Maison >développement back-end >C++ >Comment puis-je obtenir des chaînes conviviales à partir d'énumérations en C# ?

Comment puis-je obtenir des chaînes conviviales à partir d'énumérations en C# ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-23 03:47:08850parcourir

How Can I Get User-Friendly Strings from Enums in C#?

Affichage des énumérations avec des chaînes lisibles par l'homme en C#

Les énumérations sont utiles pour représenter des constantes nommées, mais l'affichage direct de leurs valeurs manque souvent de clarté pour les utilisateurs. Ce guide montre comment mapper des valeurs d'énumération à des chaînes conviviales sans la conversion inverse de chaîne en valeur.

La solution exploite l'attribut Description de System.ComponentModel. En appliquant cet attribut aux membres de votre énumération, vous fournissez une étiquette plus descriptive pour chaque valeur.

Exemple :

<code class="language-csharp">private enum PublishStatusValue
{
    [Description("Not Completed")]
    NotCompleted,
    Completed,
    Error
}</code>

Récupération de chaînes conviviales :

La méthode d'extension suivante récupère la description ou la représentation sous forme de chaîne par défaut de l'énumération si aucune description n'est trouvée :

<code class="language-csharp">public static string GetDescription<T>(this T enumerationValue)
    where T : struct
{
    Type type = enumerationValue.GetType();
    if (!type.IsEnum)
    {
        throw new ArgumentException("EnumerationValue must be of Enum type", "enumerationValue");
    }

    MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
    if (memberInfo != null && memberInfo.Length > 0)
    {
        object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
        if (attrs != null && attrs.Length > 0)
        {
            return ((DescriptionAttribute)attrs[0]).Description;
        }
    }
    return enumerationValue.ToString();
}</code>

Cette méthode fournit efficacement une sortie conviviale, améliorant la lisibilité du code et l'expérience utilisateur.

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