博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#编程(六)------------枚举
阅读量:5862 次
发布时间:2019-06-19

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

原文链接:http://blog.csdn.net/shanyongxu/article/details/46423255

 

枚举

定义枚举用到的关键字:enum

public enum TimeOfDay

        {

            Monring = 0,

            Afternoon = 1,

            Evening = 2

        }

        static void Main(string[] args)

        {

            int x=(int)TimeOfDay.Afternoon;

            Console.WriteLine(x);

            Console.ReadKey();

        }

 

创建枚举的优点:

1.是代码易于维护,因为确保给变量指定合法的,期望的值.

2.代码清晰,允许用描述性的名称拜师整数值,而不是含义模糊,变化多端的数来表示.

3.易于键入(通过使用.符号)

 

本例中TimeOfDay.Afternoon返回数字1.使用美剧一般和合适的值传递给方法,并在switch语句中迭代可能的值.

public enum TimeOfDay

        {

            Monring = 0,

            Afternoon = 1,

            Evening = 2

        }

        static void Main(string[] args)

        {           

            WriteGreeting(TimeOfDay.Afternoon);

            Console.ReadKey();

        }

        static void WriteGreeting(TimeOfDay timeOfDay)

        {

            switch (timeOfDay)

            {

                case TimeOfDay.Monring:

                    Console.WriteLine("good monring");

                    break;

                case TimeOfDay.Afternoon:

                    Console.WriteLine("cood afternoon");

                    break;

                case TimeOfDay.Evening:

                    Console.WriteLine("good evening");

                    break;

                default:

                    break;

            }

        }

在C#中枚举的真正强大之处使他们在后台会实例化为派生于基类的System.Enum的结构.这表示可以对他们调用方法,执行有用的任务.一旦代码编译好,美剧就成为了进本类型,与int和float类似.

 

使用前面的例子获取美剧的字符串表示.

TimeOfDay time = TimeOfDay.Afternoon;

Console.WriteLine(time.ToString());

字符串类型转换为枚举类型

TimeOfDay time2 = (TimeOfDay)Enum.Parse(typeof(TimeOfDay), "afternoon", true);

Console.WriteLine((int)time2);

从字符串类型转化为枚举类型需要用到函数Enum.Parse(),这个方法需要三个参数,第一个是要转换的枚举累心,用关键字typeof包起来,第二个是要转换的字符串(一定是枚举中有的),第三个是否忽略大小写.

注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。什么意思呢?

看下例:

enum Colors{Red,Green,Blue,Yellow}//Red=0,Green=1,Blue=2,Yellow=3,默认从0开始,如果指定red=3,则从3开始

 

 

Enum-->string

 

利用Tostring()方法.

Colors color=Colors.Red;

strong str = color.ToString();

 

string-->Enum

利用Enum的静态方法Parse()

Colors color=(Colors)Enum.Parse(typeof(Colors),”red”,blue) 

string str = color.ToString();

Console.WriteLine(str);

Console.ReadKey();

 

Enum-->int

直接使用强制转换

int blue=(int)Colors.Blue;

 

int-->Enum

调用方法

(1)可以强制转换将整型转换成枚举类型。

   例如:Colors color = (Colors)2 ,那么color即为Colors.Blue

(2)利用Enum的静态方法ToObject。

   public static ToObject( enumType, value)

   例如:Colors color = (Colors)Enum.ToObject(typeof(Colors), 2),那么color即为Colors.Blue

应该没有谁愿意用第二种办法吧,想装13的除外.

 

如果要判断某个整型是否定义在枚举中的方法:Enum.IsDefined.

Enum.Isdefined(typeof(Colors),number)

转载于:https://www.cnblogs.com/FinleyJiang/p/7602092.html

你可能感兴趣的文章
Fiddler实现手机抓包——小白入门(转载csdn)
查看>>
Scrum实施日记 - 一切从零开始
查看>>
Windows中安装Emacs
查看>>
vim tab四个空格修改
查看>>
C#面向对象编程 封装 继承 多态
查看>>
一gradle创建SSM项目——依赖包
查看>>
(转载)在WinForm中使用GMap.Net地图插件
查看>>
安装xampp出错,windows找不到-n ?
查看>>
初涉c++学习笔记
查看>>
python基础之 Python os._exit() sys.exit() exit()区别
查看>>
Tomcat 改BUG之 localhost:8080 404
查看>>
UI透明欺诈
查看>>
Unix环境部署
查看>>
关于存储过程实例
查看>>
eclipse推荐字体
查看>>
mysql的几种启动方式
查看>>
java.util.ConcurrentModificationException
查看>>
站立会议第九天
查看>>
git第一次提交代码到码云
查看>>
理解爬虫原理
查看>>