看看这个
enum
用于获取
Description
属性:
public static string GetDescription(this Enum enumValue)
{
var memberInfo = enumValue.GetType().GetMember(enumValue.ToString());
if (memberInfo.Length < 1)
return null;
var attributes = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
return attributes.Length > 0 ? ((DescriptionAttribute)attributes[0]).Description : enumValue.ToString();
}
举个例子
枚举
具有
说明
属性:
public enum Colors
{
[Description("Navy Blue")]
Blue,
[Description("Lime Green")]
Green
}
最后介绍了扩展方法的用法:
var blue = Colors.Blue;
Console.WriteLine(blue.GetDescription());
// Console output: Navy Blue
我的问题是,
枚举
S,是
if (memberInfo.Length < 1)
是否需要检查?返回的数组是否来自
GetMember()
永远都是空的
枚举
?我知道你可以申报空的
枚举
这样地:
public enum Colors
{
}
但我不知道您是否可以创建类型为的变量
Colors
那么……
var green = Colors. // What goes here?
我想把
如果(memberinfo.length<1)
检查一下,但如果它以后会引起问题,我不想这样做(我想不出为什么我需要一个空的
枚举
,但其他开发人员可能会使用
GetDescription()
扩展方法)。