C# 获取Enum枚举内容值或描述
//---------------------------------------Enum帮助类--------------------------------------
public static class EnumHelper
{
/// <summary>
/// 获取枚举内容值或描述
/// </summary>
public static T GetValue<T>(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<bool>(Enums.Snack_Snenable.开启);
var bbbbb = EnumHelper.GetValue<int>(Enums.ActivityPre_APjoin.不可参与);
var ccccc = EnumHelper.GetValue<string>(Enums.wxCkmanage_wcgcardcheck.待审核);