当前位置: 首页 > news >正文

C# enum Enumeration Type 枚举

  • 定义枚举
  • 使用枚举
  • 访问枚举值
  • 枚举与`switch`语句
  • 枚举特性
  • 枚举与位字段
  • 总结

C#中, enum 是一种特殊的值类型,它允许你为一组相关的常量定义一个名称。枚举提供了一种将一组整数值与更易读的名称关联起来的方法。

定义枚举

你可以使用 enum 关键字来定义枚举类型。枚举类型默认是基于 int 的,但你也可以指定不同的整型基础,如 bytesbyteshortlong 等。

// 默认基于int的枚举
public enum Color
{Red,Green,Blue
}// 基于byte的枚举
public enum Size : byte
{Small,Medium,Large
}

使用枚举

在代码中,你可以像使用常量一样使用枚举成员:

Color myColor = Color.Blue;
Size mySize = Size.Medium;

访问枚举值

你可以通过调用 ToString() 方法或使用 + 运算符来获取枚举成员的名称或值:

Console.WriteLine(myColor.ToString()); // 输出 "Blue"
Console.WriteLine((int)myColor); // 输出 "2"

枚举与switch语句

枚举类型非常适合在 switch 语句中使用:

switch (myColor)
{case Color.Red:Console.WriteLine("The color is red.");break;case Color.Green:Console.WriteLine("The color is green.");break;case Color.Blue:Console.WriteLine("The color is blue.");break;
}

枚举特性

枚举值是常量,编译时常量值就已经确定。
枚举默认从0开始,但你可以指定不同的起始值。
枚举成员的值可以是任何整型,包括负数。

public enum StatusCode
{OK = 0,NotFound = -1,Error = -2
}

枚举与位字段

枚举还可以用于位字段(bit fields),通过使用 [Flags] 特性,可以将枚举成员作为位标志来使用:

[Flags]
public enum Permissions
{None = 0,Read = 1,Write = 2,Execute = 4
}Permissions myPermissions = Permissions.Read | Permissions.Write;

使用 [Flags] 特性的枚举可以很容易地进行位运算,如 ORANDNOT 等。

总结

枚举是C#中非常有用的语言特性,可以提高代码的可读性和可维护性。

http://www.lryc.cn/news/387138.html

相关文章:

  • 【ajax07基础】回调函数地狱
  • 华为升腾显卡选型备忘
  • Interview preparation--elasticSearch正排索引原理
  • C++精解【10】
  • Linux高级编程——进程
  • 手机数据恢复篇:如何在OPPO中恢复永久删除的视频?
  • Obsidan插件开发
  • 【全球首个开源AI数字人】DUIX数字人-打造你的AI伴侣!
  • 微信小程序服务器从腾讯云迁移到阿里云出现的坑
  • SQL Server触发器深度解析:数据完整性的守护者
  • Qt信号槽的坑
  • 昇思MindSpore学习笔记1--基本介绍
  • Github Page 使用手册(保姆级教程!)
  • zram压缩机制看swapon系统调用
  • SpringBoot2+Vue3开发博客管理系统
  • JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
  • Vue 项目运行时,报错Error: Cannot find module ‘node:path‘
  • 综合评价 | 基于组合博弈赋权的物流系统综合评价(Matlab)
  • 国标GB28181视频汇聚平台EasyCVR安防监控系统常见播放问题分析及解决方法
  • 30 哈希的应用
  • (笔记)Error: qemu-virgl: Failed to download resource “qemu-virgl--test-image“解决方法
  • IntelliJ IDEA介绍
  • 【office技巧】如何合并pdf并且添加目录页
  • Spring Boot中的安全性配置详解
  • 数据权限和字段权限设计指南
  • Linux 常用命令之 RZ和SZ 简介
  • Docker Compose:简化多容器管理的利器
  • 深度解析:机器学习如何助力GPT-5实现语言理解的飞跃
  • Springcloud-消息总线-Bus
  • js 接收回调函数 转换为promise