📜  C# 通过 DescriptionAttribute 获取枚举值 - C# (1)

📅  最后修改于: 2023-12-03 14:59:43.802000             🧑  作者: Mango

C# 通过 DescriptionAttribute 获取枚举值

在 C# 中,枚举(Enum)是一种可以定义一组命名常量的数据类型。如果需要在代码中访问枚举的名称或值,可以使用 dot notation(点标记法)进行访问。但是,如果需要获取枚举项的描述信息,就需要使用 DescriptionAttribute(描述符属性)。

DescriptionAttribute

DescriptionAttribute 是 .NET Framework 包含的一种属性,可以用于在类或成员上添加描述信息。在枚举中使用 DescriptionAttribute,可以为每个枚举项添加描述信息。

public enum MyEnum
{
    [Description("First Member")]
    First,
    [Description("Second Member")]
    Second,
    [Description("Third Member")]
    Third
}
获取枚举描述信息

有时需要获取枚举项的描述信息,可以使用 GetCustomAttribute() 和 DescriptionAttribute。

MyEnum myEnum = MyEnum.First;
DescriptionAttribute attribute = myEnum.GetType()
    .GetMember(myEnum.ToString())
    .FirstOrDefault()
    ?.GetCustomAttribute<DescriptionAttribute>();

string description = attribute?.Description;
Console.WriteLine(description); // 输出: First Member

在上面的代码中,使用 GetType() 方法获取枚举类型,然后使用 GetMember() 方法获取特定成员的名称,如果找到则使用 GetCustomAttribute() 方法检索该成员上的描述属性,然后获取该描述属性的值。

总结

在 C# 中,使用 DescriptionAttribute 可以为枚举项添加描述信息,并使用 GetCustomAttribute() 方法和 DescriptionAttribute 来获取该描述信息。这在某些情况下非常有用,例如在用户界面中显示枚举值。