• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#编程(六)------------枚举

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文链接: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 Object ToObject(Type enumType,int value)

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

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

 

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

Enum.Isdefined(typeof(Colors),number)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[C2P2]AndrewNg-MachineLearning发布时间:2022-07-13
下一篇:
C++面向对象类的实例题目七发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap