C# 获取Enum枚举内容值或描述
2015-09-08 16:48
477 查看
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.待审核);
//---------------------------------------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.待审核);
相关文章推荐
- C#委托与事件
- C#的DataGridView中,设置固定的列宽,自动填充宽度
- C#类的数据成员
- 谈C#中编码Encoding
- C# 读取Excel到DataTable中
- c#保留小数点后位数的方法
- C#实现三线表格格式打印
- 【C#基本功 控件的用法】 委托
- C#------访问修饰符
- Valid Parentheses C#
- C#学习笔记之——接口实例
- C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)
- C#委托
- C# winform 上传文件、图片
- C# 重启程序本身
- C#------猜拳游戏
- C#版Websocket实例
- c# socket 获取本机的IP地址
- 正则表达式(c#)
- C#中的反射