C# 枚举(Enum)
C# 枚举(Enum)
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承
。
声明 enum 变量
声明枚举的一般语法:
enum <enum_name>
{
enumeration list
};
其中,
- enum_name 指定枚举的类型名称。
- enumeration list 是一个用逗号分隔的标识符列表。
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
实例
下面的实例演示了枚举变量的用法:
using System;
public class EnumTest
{
enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
static void Main()
{
int x = (int)Day.Sun;
int y = (int)Day.Fri;
Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
}
}
当上面的代码被编译和执行时,它会产生下列结果:
Sun = 0
Fri = 5
笔记
- 枚举是一种类型
- 适用于某些取值范围有限的数据,例如:我只想要春夏秋冬这四个字符的取值范围,如果用string的话就无法固定取值范围
- 枚举语法:[访问权限修饰符] enum 枚举名
- 枚举访问权限修饰符和类是一样的,默认访问权限和类一样都是internal
- 枚举名遵循大驼峰命名法
- 枚举的每一个值都是一个整型,默认都是从 0 开始
然后还有两点:
- 1、枚举中的元素的值可以设置为相同,但不推荐。
- 2、枚举元素默认的值的类型是 int 型,可以修改为其他整型 byte、sbyte、short、ushort、int、uint、long 和 ulong。
public enum Season_1
{
spring_1 = 3, //3
sunmmer_1, //4
autumn_1 = 3, //3
winter_1 //4
}
public enum Season_2 : long //将枚举默认类型int改为long
{
spring_2, //0
sunmmer_2, //1
autumn_2, //2
winter_2 //3
}
class Program
{
static void Main(string[] args)
{
Season_1 s2 = Season_1.autumn_1;
Console.WriteLine(s2); //显示spring_1,而不是autumn_1的原因是spring_1和autumn_1都是3,从前往后 //第一个3是spring_1,所以就输出spring_1
Season_1 s3 = Season_1.spring_1;
Console.WriteLine(s2 == s3); //结果是true,表明spring_1和autumn_1是一样的
}
}
感觉有点类似Python的字典了
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。
默认情况下,第一个枚举符号的值是 0。第 n 个符号值与第 n-1 个有关。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!