博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
enum 枚举一般用法 dotnet
阅读量:5149 次
发布时间:2019-06-13

本文共 1557 字,大约阅读时间需要 5 分钟。

public enum Demo {[Description("Moning描述")]Moning = 0, [Description("Afternoon描述")]Afternoon = 1, [Description("Evening描述")]Evening = 2, }

 

枚举方法

1、获取枚举字符串

Demo time = Demo.Afternoon;

Console.WriteLine(time.ToString());//输出:Afternoon

2、Enum.Parse()方法。这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。typeof运算符将在第5章详细论述。第二个参数是要转换的字符串,第三个参数是一个bool,指定在进行转换时是否忽略大小写。最后,注意Enum.Parse()方法实际上返回一个对象引用——我们需要把这个字符串显式转换为需要的枚举类型(这是一个取消装箱操作的例子)。对于上面的代码,将返回1,作为一个对象,对应于Demo.Afternoon的枚举值。在显式转换为int时,会再次生成1。

Demo time2 = (Demo) Enum.Parse(typeof(Demo), “afternoon”, true);

Console.WriteLine((int)time2);//输出1

Demo time3 = Enum.Parse<Demo>("1");

Console.WriteLine((int)time3.Afternoon );//输出1

3、得到枚举的某一值对应的名称

var Text = Enum.GetName(typeof(Demo), 0);

var Text = ((Demo)0).ToString();//返回:Morning

两种方法都能实现,但是当其值越界(不是枚举所列出的值),就有一定的区别了。大家可以根据自己的需求不同,选择合适的方法。

var Text = ((Demo)5).ToString(); //返回:5,如果越界返回原值

this.lbGetName.Text = Enum.GetName(typeof(Demo), 5); //返回:空字符串,如果越界返回空字符串

4、得到枚举的所有的值

foreach (int i in Enum.GetValues(typeof(Demo)))

     Text += i.ToString();
5、枚举所有的名称

foreach(string temp in Enum.GetNames(typeof(Demo)))

     Text+=temp;
6、枚举的Description值

public static class EnumExtensions    {        public static string GetDescription(this Enum value)        {            return value.GetType()                  .GetMember(value.ToString())                  .FirstOrDefault()?                  .GetCustomAttribute
()? .Description; } }

var  Text=Demo.Afternoon.GetDescription()

转载于:https://www.cnblogs.com/asd14828/p/10109506.html

你可能感兴趣的文章
Bootstrap
查看>>
C语言错误: HEAP CORRUPTION DETECTED
查看>>
【Java基础】Java类的加载和对象创建流程的详细分析
查看>>
2018-2019-1 20165231《信息安全系统设计基础》第二周学习总结
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
XlFileFormat
查看>>
Windows消息机制(转)1
查看>>
大话设计模式-职责链模式
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
Oracle中的instead of触发器
查看>>
【翻译】7个ASP.NET MVC最佳实践
查看>>
EF Core 2.1变化
查看>>
转:C++ Applications
查看>>
win7 64位机ODBC的数据源DSN添加和移除问题
查看>>
一个不错的逻辑回归的实例
查看>>
Python第一天
查看>>
css position
查看>>