zoukankan      html  css  js  c++  java
  • C#循环枚举得到枚举的注释和值

    首先定义一个枚举

    /// <summary> /// 枚举注释的自定义属性类 /// </summary> public class EnumDescriptionAttribute : Attribute { private string m_strDescription; public EnumDescriptionAttribute(string strPrinterName) { m_strDescription = strPrinterName; } public string Description { get { return m_strDescription; } } } /// <summary> /// 测试类型 /// </summary> public enum TestType { /// <summary> /// 分静态精度测量 /// </summary> [EnumDescription("分静态精度测量")] StaticPrecisionOpen, /// <summary> /// 合静态精度测量 /// </summary> [EnumDescription("合静态精度测量")] StaticPrecisionClose, /// <summary> /// 副分静态精度测量 /// </summary> [EnumDescription("副分静态精度测量")] StaticPrecisionOPenSec, /// <summary> /// 频谱分析 /// </summary> [EnumDescription("频谱分析")] Dynamic, /// <summary> /// 分电流峰值 /// </summary> [EnumDescription("分电流峰值")] CurMaxOpen, /// <summary> /// 合电流峰值 /// </summary> [EnumDescription("合电流峰值")] CurMaxClose }

    接下来通过循环得到枚举的值和注释

     Dictionary<string, int> enumDic = new Dictionary<string, int>();
    
            public void ForEnum()
            {
                Type t = typeof(TestType);
                Array arrays = Enum.GetValues(t);
                for (int i = 0; i < arrays.LongLength; i++)
                {
                    TestType test = (TestType)arrays.GetValue(i);
                    FieldInfo fieldInfo = test.GetType().GetField(test.ToString());
                    object[] attribArray = fieldInfo.GetCustomAttributes(false);
                    EnumDescriptionAttribute attrib = (EnumDescriptionAttribute)attribArray[0];
                    enumDic.Add(attrib.Description, (int)test);
                }
            }
    想找一个无人的角落发呆……
  • 相关阅读:
    函数嵌套 lisp表达式求值
    初涉时间间隔问题
    高精度算法-带小数大数相加
    12/10 C语言程序设计竞赛 后五题
    字符串头尾连接问题-木棒连接
    ZJGSU-ACM OJ 心得
    高精度算法-大数乘法
    趣味两题-(简单追及问题、两直线相交问题)
    struts2基于注解的action
    spring中常用的注解
  • 原文地址:https://www.cnblogs.com/rogation/p/2784118.html
Copyright © 2011-2022 走看看