C#入门系列 -- 枚举
【摘要】 定义枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。枚举与结构体类型一样,是由程序员定义的类型。即一种由一组称为枚举数列表的命名常量组成的独特类型。枚举类型的定义形式为:enum 枚举名 { 变量1, 变量2, ..., 变量n}// 或者enum 枚举名 { 变量1 = ...
定义
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
枚举与结构体类型一样,是由程序员定义的类型。即一种由一组称为枚举数列表的命名常量组成的独特类型。
枚举类型的定义形式为:
enum 枚举名 {
变量1,
变量2,
...,
变量n
}
// 或者
enum 枚举名 {
变量1 = 1,
变量2 = 2,
...,
变量n = n
}
这里我们通常习惯最后一个变量后面不加逗号,以表示这个枚举结束。
每个枚举类型都有一个底层整数类型,默认为int。每个枚举成员被赋值为一个底层类型的常量值;
在默认情况下,编译器把第一个成员赋值为0,并对每一个后续成员的值比前一个成员多1。
如果指定了某个枚举常量的值后,其后续的枚举常量就从当前枚举常量依次递增1。
如下图,鼠标放到WED上时,可以看到其值为3:
注意事项
-
与结构体类型一样,枚举是值类型,因此直接存储它们的数据,而不是分开存储数据和引用;
-
枚举只有一种类型的成员:命名的整数值常量;
-
不能对枚举类型的成员使用修饰符。它们都隐式地具有和枚举相同的可访问性;
-
不允许对不同枚举类型的成员进行比较,即使它们的结构和名称完全相同。
-
由于枚举类型的成员是常量,即使在没有该枚举类型的变量时它们也可以访问。使用枚举类型名、成员引用运算符加成员名的形式就可以实现对枚举类型成员的访问;
-
基础类型指定为每个枚举数分配的存储大小。但是,从enum类型到整型的转换需要用显式类型转换来完成。
-
通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。但是,还可以将枚举嵌套在类或结构中。
使用示例
enum WEEK
{
MON = 1,
TUE,
WED,
THU,
FRI,
SAT,
SUN
}
class Program
{
static void Main(string[] args)
{
// 转为string类型
string str = WEEK.MON.ToString();
// 输出: MON
Console.WriteLine(str);
// 转为int类型
int mon = (int)WEEK.MON;
// 输出:1
Console.WriteLine(mon);
Console.ReadLine();
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)