zoukankan      html  css  js  c++  java
  • 获取枚举描述信息(Description)

    工作中,碰到了这样一个问题。想在代码中定义几个常用的值。

    常用方法

    1)写在每个界面中。

    2)struct中定义

    3) config文件定义

    4)用enum。

    方法1)的可维护行太差,不可取。方法2)的封装性太差。现在用方法4)解决。

    1。定义enum

    using System;
    using System.ComponentModel;

      public enum TimeOfDay
            {
                [Description("上午")]
                Moning = 0,
                [Description("中午")]
                Afternoon = 1,
                [Description("晚上")]
                Evening = 2,

            };

    2。得到enum的描述信息。以NameValueCollection返回。

    NameValueCollection的key值等于enum的key。

    using System;
    using System.Reflection;
    using System.ComponentModel;
    using System.Collections.Specialized;

       /// <summary>
        /// 得到enum的属性值
        /// </summary>
        /// <returns></returns>
        public static NameValueCollection ConvertEnumDescriptionValue()
        {
            
            NameValueCollection nvc = new NameValueCollection();
            Type type = typeof(DescriptionAttribute);
           
            foreach (FieldInfo fi in typeof(EnumClass.TimeOfDay).GetFields())
            {
                object[] arr = fi.GetCustomAttributes(type, true);
                if (arr.Length > 0)
                {
                    
                    nvc.Add(fi.Name, ((DescriptionAttribute)arr[0]).Description);
                }
            }

            return nvc;

        }

    引用博客http://www.cnblogs.com/yank/archive/2009/02/27/1399423.html。

    感谢yank

  • 相关阅读:
    DMA+USART重定义打印接口
    FTP初探
    ESP8266-lua开发
    GPIO常见问题分析
    新装系统简介
    java四个元注解的作用
    Linux常用操作指令
    @Autowired 与@Resource的区别(详细)
    内存溢出的几种原因和解决办法
    什么是NIO2
  • 原文地址:https://www.cnblogs.com/chinaagan/p/1400576.html
Copyright © 2011-2022 走看看