zoukankan      html  css  js  c++  java
  • 数据库字段数字表示含义的枚举维护

    数据库中有个数值字段BillType,

    意思和程序中枚举对应如下:

    这样写是挺方便的,循环展示直接ToString()就得到相应的中文,还能做数值对比,

    奈何领导说不能用中文,怕以后会遇到不可思议的麻烦,于是只能改造:

    自定义特性标签:

    public class RemarkAttribute : Attribute
    {
        private string _remark;
        public RemarkAttribute(string _remark)
        {
            this._remark = _remark;
        }
        public string Remark
        {
            get { return _remark; }
            set { _remark = value; }
        }
    }

    扩展Enum,获取特性标签中的中文:

    public static class EnumExtension
    {
        public static string GetEnumRemark(this System.Enum _enum)
        {
            Type type = _enum.GetType();
            string name = _enum.ToString();
            FieldInfo fd = type.GetField(name);
            if (fd == null) return string.Empty;
            var attr = fd.GetCustomAttribute<RemarkAttribute>();
            if (attr != null)
            {
                name = attr.Remark;
            }
            return name;
        }
    }

     DropDownList中的循环绑定:

    枚举的转换:

    protected string GetTypeText(object obj)
    {
        OrderTypeEnum en;
        if (!Enum.TryParse(obj.ToString(), out en))
        {
            return "";
        }
        return en.GetEnumRemark();
    }
  • 相关阅读:
    后向边
    图的割点、桥和双连通分支的基本概念
    Hihocoder 1062 最近公共祖先1
    会场问题 差分解法
    POJ2976 01分数规划 普通题
    Hihocoder 1049
    hihocoder 1050树中最长路
    Hihocoder 1055
    POJ1463
    C语言|博课作业02
  • 原文地址:https://www.cnblogs.com/shousiji/p/7404728.html
Copyright © 2011-2022 走看看