要为C#中的枚举类型添加描述方法,可以采用以下方法:
1.使用System.ComponentModel.DescriptionAttribute类
using System.ComponentModel;
public enum Gender
{
[Description("男性")]
Male,
[Description("女性")]
Female,
[Description("未知")]
Unknown
}
上述代码中,我们使用了DescriptionAttribute类,将枚举的各个值添加了对应的中文描述。
那么在代码中如何获取枚举值的描述呢?
public static string GetEnumDescription(Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
FieldInfo field = type.GetField(name);
object[] attrs = field.GetCustomAttributes(typeof(DescriptionAttribute), true);
if (attrs.Length > 0)
{
var attr = attrs[0] as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
return name;
}
上述代码中,我们定义了一个静态方法GetEnumDescription,它可以返回任何枚举类型的值所对应的中文描述。当然,如果枚举值没有对应的中文描述,那么它会返回该枚举值的名称。
2.使用System.ComponentModel.DataAnnotations.DisplayAttribute类
using System.ComponentModel.DataAnnotations;
public enum Gender
{
[Display(Name = "男性")]
Male,
[Display(Name = "女性")]
Female,
[Display(Name = "未知")]
Unknown
}
上述代码中,我们使用了DisplayAttribute类,将枚举的各个值添加了对应的中文描述。
那么在代码中如何获取枚举值的描述呢?
using System.Reflection;
public static string GetEnumDisplayName(Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
FieldInfo field = type.GetField(name);
object[] attrs = field.GetCustomAttributes(typeof(DisplayAttribute), true);
if (attrs.Length > 0)
{
var attr = attrs[0] as DisplayAttribute;
if (attr != null)
{
return attr.GetName();
}
}
return name;
}
上述代码中,我们定义了一个静态方法GetEnumDisplayName,它可以返回任何枚举类型的值所对应的中文描述。当然,如果枚举值没有对应的中文描述,那么它会返回该枚举值的名称。
以上就是为C#中的枚举类型添加描述方法的完整攻略,希望能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中如何为枚举类型添加描述方法【小技巧】 - Python技术站