关于枚举类型用法总结两点,分享如下:

1.  根据枚举值获取枚举值的描述信息,可以封装一个方法供调用:

//  enumValue是传入的枚举值

public string GetEnumDescrption(Enum enumValue)
{
string value = enumValue.ToString();
FieldInfo field = enumValue.GetType().GetField(value);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute),false);//获取描述属性
//当描述没有时直接返回名称
if (objs ==null || objs.Length ==0)
{
return value;
}
DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
return descriptionAttribute.Description;
}

public static string GetEnumDescription(Enum enumValue, bool returnEnumAndDescription = true)
{
string str = enumValue.ToString();
System.Reflection.FieldInfo field = enumValue.GetType().GetField(str);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (objs == null || objs.Length == 0) return str;
DescriptionAttribute da = (DescriptionAttribute)objs[0];

if (returnEnumAndDescription)//返回枚举值及描述
{
str = str + "_" + da.Description;
}
else
{
str = da.Description;//返回描述
}

return str;
}

枚举类型是:

public enum EnumSex
{
/// <summary>
/// 男
/// </summary>
[Description("男")]
Male = 0,
/// <summary>
/// 女
/// </summary>
[Description("女")]
Female = 1
}

调用方法如下:

以控制台程序为例-

Program program = new Program();
string sex = program.GetEnumDescrption(EnumSex.Female);//sex ="女"
Console.WriteLine(sex);

2.for循环获取枚举值描述信息:

枚举类型如下:

public enum days
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}

调用方法如下:

Type week = typeof(days);
Array Arrays = Enum.GetValues(week);
for (int i = 0; i < Arrays.LongLength; i++)
{
Console.WriteLine(Arrays.GetValue(i));
}
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);

最新文章

  1. HDU5618 &amp; CDQ分治
  2. javascript中静态方法、实例方法、内部方法和原型的一点见解
  3. typedef和#define
  4. activity切换时的overridePendingTransition动画效 (转)
  5. C++: getline函数
  6. C++之路起航——标准模板库(queue)
  7. CSS3盒模型之box-sizing
  8. 获取通讯录的信息(关于iOS9.0之后新的框架-ContactFramework)
  9. System V 信号量
  10. [置顶] Linux协议栈代码阅读笔记(一)
  11. Vue + element-ui
  12. Android应用中使用Popupmenu
  13. [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)
  14. &quot;《算法导论》之‘队列’&quot;:队列的三种实现(静态数组、动态数组及指针)
  15. c++常量指针和指针常量的区别
  16. 南阳325----zb的生日
  17. 在C#中对枚举进行位运算--枚举组合
  18. 2.App爬取相关库的安装(安装mitmproxy)
  19. WordPress主题开发实例:查询单篇文章
  20. go语言之进阶篇通过switch实现类型断言

热门文章

  1. Spark Netty 通信框架解析
  2. Eclipse删除已安装插件
  3. 各种IE(IE6-IE10)兼容问题一行代码搞定
  4. JS的for循环包裹异步函数的问题
  5. express与koa对比
  6. MongoDB的使用学习之(五)Spring集成MongoDB以及简单的CRUD
  7. codeforces 299E Cube Problem
  8. 费用流+SPFA ||Luogu P3381【模板】最小费用最大流
  9. input输入框实现联想关键词功能
  10. 一个简单mock-server 解决方案