C# 如何使用DescriptionAttribute实现带有空格的枚举名称?
如何使用C# 如何使用DescriptionAttribute实现带有空格的枚举名称?,c#,.net,vb.net,enums,C#,.net,Vb.net,Enums,如何使用descriptionatibute通过enums实现以下功能?请注意枚举值中的空格 public enum PersonGender { Unknown = 0, Male = 1, Female = 2, Intersex = 3, Indeterminate = 3, Non Stated = 9, Inadequately Described = 9 }
descriptionatibute
通过enums
实现以下功能?请注意枚举值中的空格
public enum PersonGender
{
Unknown = 0,
Male = 1,
Female = 2,
Intersex = 3,
Indeterminate = 3,
Non Stated = 9,
Inadequately Described = 9
}
例如,您可以这样使用: 这是我们的枚举:
public enum MyEnum
{
[Description("Description for Foo")]
Foo,
[Description("Description for Bar")]
Bar
}
以及我们获取属性的方法
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;
}
您可以获得以下描述:
MyEnum x = MyEnum.Foo;
string description = x.GetDescription();
我不明白为什么枚举描述属性如此复杂。难道没有一个内置的函数来访问它吗?我知道没有。