新闻中心
C#中的枚举(enum)怎么用 C#枚举类型的定义和遍历
枚举是C#中用于定义命名常量的值类型,提升代码可读性和维护性。1. 使用enum关键字定义,成员默认从0开始递增,也可手动指定值。2. 可基于byte、short等整数类型定义。3. 通过Enum.GetValues()和Enum.GetNames()遍历成员值和名称。4. 用[Flags]特性支持位操作,组合多个值。5. 使用Enum.TryParse()安全解析字符串为枚举值。6. 避免魔数,增强语义清晰度。

在C#中,枚举(enum)是一种值类型,用于定义一组命名的常量。使用枚举可以提高代码的可读性和维护性,特别是在处理具有固定取值范围的场景时非常有用,比如状态、选项、类型等。
枚举类型的定义
使用 enum 关键字来定义枚举类型。枚举成员默认从0开始,依次递增。你也可以手动指定每个成员的值。
// 定义一个表示星期的枚举
enum Weekday
{
Monday, // 值为 0
Tuesday, // 值为 1
Wednesday, // 值为 2
Thursday, // 值为 3
Friday // 值为 4
}
// 定义带整数值的枚举
enum Status
{
Pending = 1,
Approved = 2,
Rejected = 3
}
// 枚举也可以基于不同的整数类型(如 byte、short、long)
enum Priority : byte
{
Low = 1,
Medium = 2,
High = 3
}
枚举的基本使用
定义后,可以直接像使用普通变量一样使用枚举类型:
CA.LA
第一款时尚产品在线设计平台,服装设计系统
94
查看详情
Weekday today = Weekday.Monday; Console.WriteLine(today); // 输出: Monday Console.WriteLine((int)today); // 输出: 0 Status approval = Status.Approved; Console.WriteLine(approval); // 输出: Approved Console.WriteLine((int)approval); // 输出: 2
遍历枚举的所有成员
有时我们需要获取枚举中所有可用的值或名称,可以通过 Enum.GetValues() 或 Enum.GetNames() 方法实现。
// 遍历枚举的所有值
Console.WriteLine("Weekday values:");
foreach (Weekday day in Enum.GetValues(typeof(Weekday)))
{
Console.WriteLine($"{day} = {(int)day}");
}
// 遍历枚举的所有名称
Console.WriteLine("\nWeekday names:");
foreach (string name in Enum.GetNames(typeof(Weekday)))
{
Console.WriteLine(name);
}
输出结果:
Pending = 1Approved = 2
Rejected = 3
实用技巧和注意事项
- 枚举是值类型,继承自 System.Enum,不能有方法或字段(除非使用扩展方法)。
- 可以用 [Flags] 特性标记位枚举,支持组合多个值(常用于权限、选项集合):
[Flags]
enum FileAccess
{
None = 0,
Read = 1,
Write = 2,
ReadWrite = Read | Write
}
FileAccess access = FileAccess.Read | FileAccess.Write;
Console.WriteLine(access); // 输出: Read, Write
- 使用 Enum.TryParse() 安全地将字符串转换为枚举值:
if (Enum.TryParse("Approved", out Status result))
{
Console.WriteLine(result);
}
else
{
Console.WriteLine("无效的枚举值");
}
基本上就这些。枚举让代码更清晰,避免“魔数”出现,合理使用能显著提升程序的可维护性。以上就是C#中的枚举(enum)怎么用 C#枚举类型的定义和遍历的详细内容,更多请关注其它相关文章!
# 是在
# 斗鱼的营销推广策略
# 集体网站建设
# 白城租房网站建设
# 广州网站建设带来的好处
# 扬中网站的建设品牌
# 宁波北仑区网站建设
# 岳阳网站建设方案外包
# 萝岗信息网站推广
# 香河seo代理
# 小龙虾的营销推广方案
# 可以用
# 是一种
# 枚举
# 意味着什么
# 开源
# 这对
# 微软
# 多个
# 值为
# 遍历
# 代码可读性
# access
# app
# c#
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
mysql如何设置表访问权限_mysql表访问权限配置
如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit
学习通在线学习平台 学习通网页版直接进入课程中心
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
Mac终端命令大全_Mac常用Terminal指令速查
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析
J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析
poki免费入口快捷访问 poki人气小游戏直接玩站点
QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口
漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析
使用Pandas转换并合并DataFrame:多列映射至统一结构
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
C++如何解决segmentation fault_C++段错误调试与原因分析
vivo云服务网页版登录 怎么登录vivo云服务网页版
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
《主播少女的秘密账号迷宫》首支宣传片
NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略
qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
12306怎么选座位选到安静区_12306选座安静区域选择策略
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
Shopware订单对象中获取产品自定义字段的正确方法
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
深入理解J*a编译器的兼容性选项:从-source到--release
c++中的std::forward_list和std::list有什么不同_c++ forward_list与list区别分析
J*aScriptWebpack优化_J*aScript构建工具实战
J*a里如何使用forEach遍历Map_Map遍历方法说明
Discord Slash 命令响应超时问题的异步解决方案
AngularJS $http POST请求数据传递与Go后端接收实践
深入理解J*a链表中的IPosition接口与使用
PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具
Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】
AO3最新官网入口公告_2025AO3镜像站实时查询方法
163邮箱官方主页登录 直达网易邮箱登录核心页面
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
qq游戏大厅官方下载_qq游戏免费下载安装入口
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法
《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情
Python自定义类排序:解决lambda键值访问TypeError的实践指南
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
MongoDB聚合管道:正确匹配对象数组中_id的方法


2025-11-21
浏览次数:次
返回列表