C#中打印日志或者前端展示时,通常会用到枚举类的描述值,可以通过以下代码获取:
public static string GetEnumDes(Enum enumValue)
{
string value = enumValue.ToString();
FieldInfo field = enumValue.GetType().GetField(value);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性
if (objs == null || objs.Length == 0) //当描述属性没有时,直接返回名称
{
return value;
}
DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
return descriptionAttribute.Description;
}
public enum Type{
[Description("学生")]
Student,
Teacher,
}
void Main()
{
GetEnumDes(Type.Student);//"学生"
GetEnumDes(Type.Teacher);//"Teacher"
}