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

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

  • 相关阅读:
    【Redis】集群NetCore实战
    【Redis】集群教程(Windows)
    【Redis】入门
    【SQL SERVER】索引
    【SQL SERVER】锁机制
    【SQL SERVER】数据内部存储结构简单探索
    Windows软件包管理工具
    Git常用命令记录
    【ASP.NET Core学习】远程过程调用
    CouchDB学习-API
  • 原文地址:https://www.cnblogs.com/rennix/p/6402274.html
Copyright © 2011-2022 走看看