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

  • 相关阅读:
    解决 minicom 不能接收键盘输入问题
    Qt 使用tablib获取多媒体tag信息
    博客园scribefire配置
    Connection Manager简称connman
    【转】使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
    ubuntu 更改U盘设备分区/dev/sdb4 标识
    Qt 自动化测试Test cutedriver
    在Sublime2/3中使用build命令编译TypeScript文件
    移动端Web适配单位rem的坑
    禁止保存,拖拽图片,禁用右键和F12
  • 原文地址:https://www.cnblogs.com/chinaagan/p/1400576.html
Copyright © 2011-2022 走看看