加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C# 获取Enum枚举内容值或描述

(2016-01-31 09:29:49)
分类: 编程
C# 获取Enum枚举内容值或描述
//---------------------------------------Enum帮助类--------------------------------------
public static class EnumHelper
    {
        ///
        /// 获取枚举内容值或描述
        ///
        public static T GetValue(Enum enumerationValue)
        {
            Type type = enumerationValue.GetType();
            MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
            //if (memberInfo != null && memberInfo.Length > 0)//此情况应该不会出现
            //{
            object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attrs != null && attrs.Length > 0)
            {
                var result = ((DescriptionAttribute)attrs[0]).Description;
                return (T)Convert.ChangeType(result, typeof(T));
            }
            else
            {
                return (T)Convert.ChangeType(enumerationValue, typeof(T));
            }
            //}
            //return enumerationValue.ToString();
        }
    }

//------------------------------------Enum示例----------------------------------
        public enum ActivityPre_APjoin
        {
            全部 = 0,
            关注粉丝 = 1,
            会员 = 2,
            不可参与 = 3
        }
        public enum Snack_Snenable
        {
            [Description("true")]
            开启,
            [Description("false")]
            关闭
        }
        public enum wxCkmanage_wcgcardcheck
        {
            [Description("CARD_STATUS_NOT_VERIFY")]
            待审核,
            [Description("CARD_STATUS_VERIFY_FALL")]
            审核失败,
            [Description("CARD_STATUS_VERIFY_OK")]
            审核通过,
            [Description("CARD_STATUS_USER_DELETE")]
            卡券被用户删除,
            [Description("CARD_STATUS_USER_DISPATCH")]
            在公众平台投放过的卡券
        }
//-------------------------------------------调用示例----------------------------------------
var aaaaa = EnumHelper.GetValue(Enums.Snack_Snenable.开启);
var bbbbb = EnumHelper.GetValue(Enums.ActivityPre_APjoin.不可参与);
var ccccc = EnumHelper.GetValue(Enums.wxCkmanage_wcgcardcheck.待审核);

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有