using System;
namespace EnumType
{
//枚举:
/*
* 枚举是程序员自定义类型,属于值类型
* 通过Enum关键字声明枚举
* 枚举中只有一种类型数据:给了名字的整型值
* 枚举中包含:枚举成员
* 枚举的作用:用来标识一系列有明确意义的整型值,每个成员名称对应一个具体的值
*/
//声明枚举,标识星期
//enum 枚举名称:枚举值类型(可以省略,省略默认就是int类型。如果不省略,可以标识为任意整型类型)
enum WeekDay:byte{
//枚举成员,多个枚举成员并列用逗号隔开,最后一个成员可以省略逗号
//如果枚举成员没有明确标识对应值,默认从0,依次向下,每个成员递增加一
//如果没有显式标识枚举值类型,默认是int类型
//可以标识枚举成员名称对应具体值,从该成员向下,没有对应具体值的成员依次递增加一
//枚举成员名称不可以重复,但是对应的值可以重复
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
//声明一个枚举表示性别,内部值类型为short
enum Sex:short{
male, //男
female //女
}
class MainClass
{
public static void Main (string[] args)
{
//声明枚举变量
//如果通过整型值给枚举变量赋值,需要强制类型转换
//第一种赋值方式:通过整型值赋值
WeekDay weekDay = (WeekDay)13;
//第二种赋值方式:通过枚举成员赋值
weekDay = WeekDay.Sunday;
//第三种赋值方式:通过其他枚举变量赋值
WeekDay weekDayTwo = WeekDay.Friday;
weekDay = weekDayTwo;
Console.WriteLine ("weekDay:{0}", weekDay);
//将一个枚举成员转换成整型值,也要强制类型转换
Console.WriteLine ("weekDay:{0}", (byte)weekDay);
Console.WriteLine ("请输入一个1-7之间的数字:");
byte week = Convert.ToByte (Console.ReadLine());
switch ((WeekDay)week) {
case WeekDay.Monday:
Console.WriteLine("星期一");
break;
case WeekDay.Tuesday:
Console.WriteLine("星期二");
break;
case WeekDay.Wednesday:
Console.WriteLine("星期三");
break;
case WeekDay.Thursday:
Console.WriteLine("星期四");
break;
case WeekDay.Friday:
Console.WriteLine("星期五");
break;
case WeekDay.Saturday:
Console.WriteLine("星期六");
break;
case WeekDay.Sunday:
Console.WriteLine("星期日");
break;
}
Console.WriteLine ("请输入0或1:");
Sex sex = (Sex)Convert.ToInt16 (Console.ReadLine());
switch (sex) {
case Sex.male:
Console.WriteLine("男");
break;
case Sex.female:
Console.WriteLine("女");
break;
}
}
}
}