首页 >后端开发 >C++ >如何为 C# 枚举提供友好名称?

如何为 C# 枚举提供友好名称?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-19 11:26:10498浏览

How Can I Give Friendly Names to C# Enums?

为 C# 枚举设置更友好的名称

C#编程中,枚举用于定义一组固定的值,枚举变量只能取枚举中定义的值。然而,默认情况下,枚举成员只是数值,在某些情况下不够直观。因此,问题是如何为枚举赋予更友好的名称。

使用 Description 属性的解决方案

为了给枚举成员赋予更易于理解的名称,可以使用 Description 属性。这允许为每个枚举成员指定一个描述性文本字符串。然后,可以使用扩展方法来获取此描述:

<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>

使用方法如下:

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

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

以上是如何为 C# 枚举提供友好名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn