第二十式:C# 枚举 (江湖名号)

绝世
秘籍
冲儿,江湖上有五岳剑派,如果让你用数字 1, 2, 3, 4, 5 来代表它们,时间久了你还记得谁是谁吗?
这时候,我们需要一种能自己说话的数字,这就是枚举 (Enum)
就是给数字起个响亮的名字?

1. 定义枚举 - 英雄榜

枚举本质上就是一组具名的整数常量。


enum Sect
{
    HuaShan,    // 默认是 0
    SongShan,   // 1
    TaiShan,    // 2
    HengShan,   // 3
    HengShan2   // 4 (恒山)
}

// 也可以手动指定数字
enum Level
{
    Low = 10,
    Medium = 50,
    High = 100
}
        

2. 使用枚举 - 亮明身份


Sect mySect = Sect.HuaShan;

if (mySect == Sect.HuaShan)
{
    Console.WriteLine("我是华山派的!");
}

// 转换成数字
int id = (int)mySect; // 0
        
代码里到处写 if (type == 1) 是大忌,谁知道 1 是什么鬼?
写成 if (type == EnemyType.Boss),连路边的乞丐都能看懂你的代码!这叫可读性
🏷️

动手时刻:排资论辈

定义一个枚举 Week,包含周一到周日。

尝试把 Week.Sunday 强制转换成整数,看看它是几?

查看参考答案

enum Week
{
    Monday, // 0
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday // 6
}

int day = (int)Week.Sunday;
Console.WriteLine(day); // 输出 6
                    

成就解锁:【名扬天下】 获得:英雄帖