zoukankan      html  css  js  c++  java
  • C# 获取自定义特性值

    自定义一个特性

    /// <summary>
    /// 枚举备注特性
    /// </summary>
    public class EnumRemarkAttribute : Attribute
    {
       public string Remark { get; set; }
       public EnumRemarkAttribute(string remark)
       {
           this.Remark = remark;
       }
    }
    

    特性对应枚举使用

    
    /// <summary>
    /// 用户学历
    /// </summary>
    public enum UserEducation
    {
      /// <summary>
      /// 小学
      /// </summary>
      [EnumRemark("小学")]
      PrimarySchool = 1,
      /// <summary>
      /// 高中
      /// </summary>
      [EnumRemark("高中")]
      HighSchool = 2,
      /// <summary>
      /// 大学
      /// </summary>
      [EnumRemark("大学")]
      University = 3
    }
    

    新增一个枚举扩展方法

    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();
            }
        }
    }
    

    使用Demo

    static void Main(string[] args)
    {
        UserEducation userEducation = UserEducation.HighSchool;
        Console.WriteLine((int)userEducation);          //2
        Console.WriteLine(userEducation.ToString());    //HighSchool
        Console.WriteLine(userEducation.GetRemark());   //高中;
    }
    
  • 相关阅读:
    Nginx的启动、停止与重启
    如何修改element.style中的值
    在centos后台运行python程序(nohup)
    Python schedule 模块使用
    「Django」Django内置email发送邮件
    Django内置email发送邮件
    「Django」Xadmin应用
    「Django」浏览+1的操作
    「Vue」watch基本用法
    「Django」contenttypes基本用法
  • 原文地址:https://www.cnblogs.com/Alicia-meng/p/15529500.html
Copyright © 2011-2022 走看看