第八章 枚举
【定义】
一类相关的标志符组合起来形成的整体,枚举实质上是整型数据。使用enum关键字修饰。
【枚举变量声明方式】
1、先声明枚举类型, 后声明枚举变量
enum 枚举类型名{ ? 枚举成员变量1, ? 枚举成员变量2, ? …… ? };
eg:
// #region << 版 本 注 释 >> // /*---------------------------------------------------------------- // // Copyright (C) 2019 极客部落 // // 版权所有。 // // // // 文件名:Program.cs // // 文件功能描述: // // // // // // 创建者:GeekTribe // // 时间:14:05 // //----------------------------------------------------------------*/ // #endregion using System; ? namespace MSN { enum Week { SUN, MON, TUES, WED, THURS, FRI, SAT }; ? class MainClass { public static void Main(string[] args) { Week week; } } }
【特性】
1、枚举的实质是整型变量, 其取值范围是整数取值范围的一个子集。
2、枚举成员数值默认从0开始, 依次递增1,若枚举成员被初始化,则从当前枚举成员开始, 后面所有成员数值将在当前枚举成员数值的基础上依次递增1。
3、枚举变量定义位置可放置在所有函数体之外,也可放置在函数体内。
4、枚举成员变量之间使用【,】隔开, 最后一个枚举成员变量后可省略,不写, 枚举结构定义完成后,需在最后的大括号后使用 ; 结束。
5、枚举成员变量取值范围是其对应的所有枚举成员。
eg:
// #region << 版 本 注 释 >> // /*---------------------------------------------------------------- // // Copyright (C) 2019 极客部落 // // 版权所有。 // // // // 文件名:Program.cs // // 文件功能描述: // // // // // // 创建者:GeekTribe // // 时间:14:05 // //----------------------------------------------------------------*/ // #endregion using System; ? namespace MSN { /************* 枚举 *************/ //周状态枚举 enum Week { SUN = 1, MON, TUES = 10, WED, THURS, FRI, SAT }; ? //任务状态枚举 enum TaskState { NONE, PROCESSING, SUCCESSFULLY, FAILED, }; ? //英雄状态枚举 enum HeroState { IDLE, WALK, RUN, ATTACK, DEFEND, DIE, }; ? class MainClass { //枚举作为函数形参 static void JudegTaskState(TaskState task_state){ switch (task_state) { case TaskState.PROCESSING: Console.WriteLine("Task is proccessing!\n"); break; case TaskState.SUCCESSFULLY: Console.WriteLine("Task is Done!\n"); break; case TaskState.FAILED: Console.WriteLine("Task is failed!\n"); break; default: Console.WriteLine("Sorry, You can fire me!\n"); break; } } ? public static void Main(string[] args){ TaskState task_state; task_state = TaskState.PROCESSING; JudegTaskState(task_state); ? HeroState heroState = HeroState.IDLE; Console.WriteLine("HeroState = {0}\n", heroState); ? } } }