枚举类型是值类型,属于自定义类型。
作用:枚举类型可以用来表示一系列相关连具有明确指定意义的整型值。
声明样式:
* enum 枚举名称: 成员类型(成员类型可省略,默认int类型)
* {
* 任意多个成员(枚举成员就是标志符),每个成员表示具有指定意义的整型值
* }
注意:
自定义类型名称,各单词首字母必须均大写
当没有显式指定成员表示的整型值时,成员从上到下默认从0开始依次递增
可以通过赋值运算符给枚举成员赋值指定要指代的整型值。当显式指定某个成员的值之后,该成员其下的为明确指定数据值得成员会依照该成员的值依次递增
一个枚举之内不能存在同名成员,不同的成员可以指代相同的值,但是不符合正常逻辑
枚举成员的类型只能是整型(sbyte、byte、ushort、short、uint、int、ulong、long)中的一种,不能是其他类型
//创建一个枚举数据类型
enum Sex:byte
{
Male = 0, //男
Female //女
}
enum Week
{
Mon = 1, //星期一
Tues, //星期二
Wed, //星期三
Thur, //星期四
Fri, //星期五
Sat, //星期六
Sun //星期日
}
class Program
{
static void Main(string[] args)
{
//声明对应枚举类型变量
Sex sex00;
//给枚举类型变量赋值或初始化时,可以使用某个枚举成员或某个整型数据对其赋值操作
//获取枚举成员:枚举类型名称.成员名称
//初始化
Sex sex01 = Sex.Male;
Console.WriteLine("sex01:{0}", sex01);
//整型数据到枚举类型需要进行强制类型转换
//赋值
sex00 = (Sex)1;
Console.WriteLine("sex00:{0}", sex00);
sex01 = Sex.Female;
Console.WriteLine("sex01:{0}", sex01);
//从枚举类型数据转换到整型数据也需要进行强制类型转换
byte num = (byte)sex01;
Console.WriteLine("num:{0}", num);
Console.WriteLine("请输入任意一个1-7之间的数值:");
Week n = (Week)int.Parse(Console.ReadLine());
Console.WriteLine(n);
string[] array = { "一", "二", "三", "四", "五", "六", "日"};
Console.WriteLine("今天是星期{0}。", array[(int)n-1]);
Console.ReadKey();
}
}