C#高级编程第六天----枚举

枚举

定义枚举用到的关键字: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的结构.这表示可以对他们调用方法,执行有用的任务.一旦代码编译好,美剧就成为了进本类型,intfloat类似.

 

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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值