news 2026/9/19 15:07:43

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/9/9 11:07:31

40、C编程中的字符串、数值格式化、解析及可空类型等知识详解

C#编程中的字符串、数值格式化、解析及可空类型等知识详解 1. 字符串操作 在C#中,字符串是Unicode字符数组。例如, string s = "Hi there."; 声明并初始化了一个字符串变量 s 。调用 s.ToUpper() 方法会返回一个全大写的字符串副本,但原字符串 s 不会改…

作者头像 李华
网站建设 2026/9/17 13:21:40

【Open-AutoGLM沉思版深度解析】:揭秘国产大模型推理优化黑科技

第一章:【Open-AutoGLM沉思版深度解析】:揭秘国产大模型推理优化黑科技在国产大模型快速发展的背景下,Open-AutoGLM沉思版凭借其独特的推理优化架构,成为高性能本地化部署的标杆。该模型不仅兼容GLM系列架构,更通过动态…

作者头像 李华
网站建设 2026/9/17 0:34:24

YACReader全面体验:跨平台漫画阅读神器深度评测

YACReader全面体验:跨平台漫画阅读神器深度评测 【免费下载链接】yacreader This repo contains the code of YACReaders desktop version. 项目地址: https://gitcode.com/gh_mirrors/ya/yacreader 在数字漫画阅读的广阔天地中,YACReader以其卓越…

作者头像 李华
网站建设 2026/9/18 10:30:28

语雀内容迁移工具:轻松实现文档批量导出与格式转换

语雀内容迁移工具:轻松实现文档批量导出与格式转换 【免费下载链接】yuque-exporter 项目地址: https://gitcode.com/gh_mirrors/yuqu/yuque-exporter 还在为语雀文档迁移而烦恼?这款智能内容转换工具将为你提供完美的解决方案。无论你是个人用户…

作者头像 李华
网站建设 2026/9/17 20:24:02

GPT-SoVITS语音动态适应环境噪声的能力

GPT-SoVITS语音动态适应环境噪声的能力 在智能语音助手、有声内容创作和无障碍通信日益普及的今天,用户对个性化语音合成的要求早已不再局限于“能说话”,而是追求“像我一样自然地说话”。然而现实往往不那么理想:录音设备简陋、背景嘈杂、数…

作者头像 李华