ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

27、枚举类型的深入解析与应用

27、枚举类型的深入解析与应用

枚举类型的深入解析与应用

1. 设置底层类型和显式值

在定义枚举时,你可以使用除int之外的整数类型。方法是在枚举名称后面加上冒号和类型名称,不过该类型不能是char。枚举的所有成员常量都属于其底层类型,成员常量的值可以是底层类型的任意值。若要显式设置成员的值,可在枚举声明中成员名称后使用初始化器。成员名称不能重复,但值可以重复,示例代码如下:

enum TrafficLight : ulong { ... } enum TrafficLight { Green = 10, Yellow = 15, // 重复值 Red = 15 // 重复值 }

上述代码展示了两种等价的TrafficLight枚举声明方式,左边代码采用默认类型和编号,右边代码显式将底层类型设置为int,并为成员赋予对应默认值。

2. 隐式成员编号

你可以为枚举的成员常量显式赋值。若未对成员常量进行初始化,编译器会隐式为其赋值。编译器的赋值规则如下:
- 若成员是枚举的第一个成员且未显式赋值,则其值为 0。
- 若成员未显式赋值且不是第一个成员,则其值为前一个成员的值加 1。

以下是两个枚举声明的示例:

enum CardSuit { Hearts, // 0 - 因为是第一个成
返回列表