Maison >développement back-end >C++ >Comment puis-je donner des noms conviviaux aux énumérations C# ?

Comment puis-je donner des noms conviviaux aux énumérations C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-19 11:26:10577parcourir

How Can I Give Friendly Names to C# Enums?

Définissez des noms plus conviviaux pour les énumérations C#

En programmation C#, les énumérations sont utilisées pour définir un ensemble fixe de valeurs. Les variables d'énumération ne peuvent prendre que les valeurs définies dans l'énumération. Cependant, par défaut, les membres de l'énumération ne sont que des valeurs numériques, ce qui n'est pas assez intuitif dans certains cas. La question est donc de savoir comment donner à l’énumération un nom plus convivial.

Solution utilisant l'attribut Description

Pour donner aux membres de l'énumération des noms plus compréhensibles, vous pouvez utiliser l'attribut Description. Cela permet de spécifier une chaîne de texte descriptive pour chaque membre de l'énumération. Cette description peut ensuite être obtenue grâce à une méthode d'extension :

<code class="language-csharp">public static string GetDescription(this Enum value)
{
    Type type = value.GetType();
    string name = Enum.GetName(type, value);
    if (name != null)
    {
        FieldInfo field = type.GetField(name);
        if (field != null)
        {
            DescriptionAttribute attr = 
                   Attribute.GetCustomAttribute(field, 
                     typeof(DescriptionAttribute)) as DescriptionAttribute;
            if (attr != null)
            {
                return attr.Description;
            }
        }
    }
    return null; // 或抛出异常,视情况而定
}</code>

Comment l'utiliser :

<code class="language-csharp">public enum MyEnum
{
    [Description("Foo 的描述")]
    Foo,
    [Description("Bar 的描述")]
    Bar
}

MyEnum x = MyEnum.Foo;
string description = x.GetDescription();</code>

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