欢迎您来到“名字什么都是浮云”的博客空间!

C#枚举

 

        /// <summary>
        /// 返回指定枚举类型的指定值的描述
        /// </summary>
        /// <param name="t">枚举类型</param>
        /// <param name="v">枚举值</param>
        /// <returns></returns>
        private static string GetDescription(System.Type t, object v)
        {
            try
            {
                if (!Enum.IsDefined(t, v))
                    return "未知";
                FieldInfo fi = t.GetField(GetName(t, v));
                DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
                return (attributes.Length > 0) ? attributes[0].Description : GetName(t, v);
            }
            catch
            {
                return "未知";
            }
        }    

  

public static SortedList GetStatus(System.Type t)
        {
            SortedList list = new SortedList();
 
            if (t.Equals(typeof(AppEnum.SalesPaymentStatus)))
            {
                Array a = Enum.GetValues(t);
                for (int i = 0; i < a.Length; i++)
                {
                    string enumName = a.GetValue(i).ToString();
                    int enumKey = (int)System.Enum.Parse(t, enumName);
                    if (enumKey == (int)AppEnum.SalesPaymentStatus.Create || enumKey == (int)AppEnum.SalesPaymentStatus.WaitAudit || enumKey == (int)AppEnum.SalesPaymentStatus.Audit || enumKey == (int)AppEnum.SalesPaymentStatus.Claim)
                    {
                        continue;
                    }
                    string enumDescription = GetDescription(t, enumKey);
                    list.Add(enumKey, enumDescription);
                }
            }
            else if (t.Equals(typeof(AppEnum.SalesPaymentMode)))
            {
                Array a = Enum.GetValues(t);
                for (int i = 0; i < a.Length; i++)
                {
                    string enumName = a.GetValue(i).ToString();
                    int enumKey = (int)System.Enum.Parse(t, enumName);
                    if (enumKey == (int)AppEnum.SalesPaymentMode.CaiWuHuiTian)
                    {
                        continue;
                    }
                    string enumDescription = GetDescription(t, enumKey);
                    list.Add(enumKey, enumDescription);
                }
            }
            else
            {
                Array a = Enum.GetValues(t);
                for (int i = 0; i < a.Length; i++)
                {
                    string enumName = a.GetValue(i).ToString();
                    int enumKey = (int)System.Enum.Parse(t, enumName);
                    string enumDescription = GetDescription(t, enumKey);
                    list.Add(enumKey, enumDescription);
                }
            }
            return list;
        }

  

   public static SortedList GetStatus<T>()
        {
            return GetStatus(typeof(T));
        }
        public static string GetDescription<T>(object v)
        {
            return GetDescription(typeof(T), v);
 
        }

  

 

posted @ 2016-09-24 22:37  名字什么都是浮云  阅读(205)  评论(0)    收藏  举报