zoukankan      html  css  js  c++  java
  • 扩展方法:获取枚举的描述信息

    定义这样一个枚举:

        //颜色枚举
        internal enum Color
        {
            [Description("红色")]
            Red=0,
    
            [Description("绿色")]
            Green=1,
    
            [Description("蓝色")]
            Blue=2
        }
    

     获取枚举描述信息的扩展方法:

            private static string GetDescription(this Enum value)
            {
                //得到枚举类型:返回 命名空间+枚举名
                var type = value.GetType();
    
                //得到字段:传入这个枚举类型和一个value,得到 枚举名.值 
                var field = type.GetField(Enum.GetName(type, value));
    
                if (field == null) return "";
    
                //得到这个枚举值所拥有的的标签中,类型为Description的标签
                var desc = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
    
                //返回这个标签的Description属性值
                return desc != null ? desc.Description : "";
            }
    

    调用:

            private static void Main(string[] args)
            {
                Color c = Color.Red;
                Console.WriteLine(c.GetDescription());
                Console.ReadKey();
            }
    

    使用场景:通过这种思路可以获取到任意类型的特性标签的值,上面这个扩展方法可以用于获取描述信息,生成下拉列表、单选、复选等应用场景,而不用在多个地方编写重复的文字描述。

  • 相关阅读:
    cscope的使用
    关于函数指针
    linux内核源码目录(转)
    lcc之内存分配
    符号管理之符号表
    监听UITextFiled文本发生改变
    Debugging Tools for Windows__from WDK7
    WinDBG__独立安装文件
    20160215
    QT Creator 代码自动补全
  • 原文地址:https://www.cnblogs.com/rennix/p/6402274.html
Copyright © 2011-2022 走看看