C# 通过特性获取枚举中文备注信息
2019-06-20 23:03
6888 人阅读
分类:
/// <summary> /// 枚举备注特性 /// </summary> public class EnumRemarkAttribute : Attribute { public string Remark { get; set; } public EnumRemarkAttribute(string remark) { this.Remark = remark; } } public static class EnumRemark { public static string GetRemark(this Enum enumInfo) { Type type = enumInfo.GetType(); //获取字段信息 FieldInfo field = type.GetField(enumInfo.ToString()); //检查字段是否含有指定特性 if (field.IsDefined(typeof(EnumRemarkAttribute), true)) { //获取字段上的自定义特性 EnumRemarkAttribute remarkAttribute = (EnumRemarkAttribute)field.GetCustomAttribute(typeof(EnumRemarkAttribute)); return remarkAttribute.Remark; } else { return enumInfo.ToString(); } } } /// <summary> /// 用户学历 /// </summary> public enum UserEducation { /// <summary> /// 小学 /// </summary> [EnumRemark("小学")] PrimarySchool = 1, /// <summary> /// 高中 /// </summary> [EnumRemark("高中")] HighSchool = 2, /// <summary> /// 大学 /// </summary> [EnumRemark("大学")] University = 3 }
static void Main(string[] args) { UserEducation userEducation = UserEducation.HighSchool; Console.WriteLine((int)userEducation); //2 Console.WriteLine(userEducation.ToString()); //HighSchool Console.WriteLine(userEducation.GetRemark()); //高中; }
和博主交个朋友吧