news 2026/4/27 12:29:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
27、枚举类型的深入解析与应用

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

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

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

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

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

2. 隐式成员编号

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

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

enum CardSuit { Hearts, // 0 - 因为是第一个成
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:49:26

30、C 委托:从基础到高级应用

C# 委托:从基础到高级应用 1. 委托概述 委托可以被看作是一个包含具有相同签名和返回类型的有序方法列表的对象。这个方法列表被称为调用列表。当调用委托时,它会依次调用调用列表中的每个方法。 与 C++ 中的函数指针类似,只有单个方法的委托与之有相似之处,但委托是面向…

作者头像 李华
网站建设 2026/4/23 9:50:17

33、深入理解C中的泛型

深入理解C#中的泛型 1. 泛型是什么 在编程中,我们可以通过声明类来封装所需的行为,然后创建这些类的实例,以此构建各种不同类型的强大对象。到目前为止,类声明中使用的类型都是特定类型,要么是程序员自定义的,要么是由语言或基础类库(BCL)提供的。 然而,有时候如果…

作者头像 李华
网站建设 2026/4/25 16:51:41

Windows系统文件msxmlr.dll丢失 免费下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/25 15:58:16

Windows系统文件NapiNSP.dll丢失损坏 免费下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/23 1:55:00

37、深入理解LINQ与XML操作

深入理解LINQ与XML操作 1. LINQ示例:委托参数与Lambda表达式 在LINQ的使用中,我们可以通过不同的方式来实现特定的功能。首先来看使用委托参数的示例。 在下面的代码中,我们定义了一个 IsOdd 方法,该方法接受一个 int 类型的参数,并返回一个 bool 值,用于判断输…

作者头像 李华
网站建设 2026/4/24 16:12:47

如何将GPT-SoVITS集成到现有语音平台?

如何将 GPT-SoVITS 集成到现有语音平台 在智能客服系统中,用户越来越难以接受千篇一律的“机器音”——他们希望听到更自然、更有温度的声音。而传统语音合成技术往往需要数小时标注数据才能训练出一个可用模型,周期长、成本高,严重制约了个性…

作者头像 李华