C#入门系列 (十五) -- 枚举
定义
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
枚举与结构体类型一样,是由程序员定义的类型。即一种由一组称为枚举数列表的命名常量组成的独特类型。
枚举类型的定义形式为:
这里我们通常习惯最后一个变量后面不加逗号,以表示这个枚举结束。
每个枚举类型都有一个底层整数类型,默认为 int。每个枚举成员被赋值为一个底层类型的常量值;在默认情况下,编译器把第一个成员赋值为 0,并对每一个后续成员的值比前一个成员多 1。
如果指定了某个枚举常量的值后,其后续的枚举常量就从当前枚举常量依次递增 1。
如下图,鼠标放到 WED 上时,可以看到其值为 3:
注意事项
与结构体类型一样,枚举是值类型,因此直接存储它们的数据,而不是分开存储数据和引用;
枚举只有一种类型的成员:命名的整数值常量;
不能对枚举类型的成员使用修饰符。它们都隐式地具有和枚举相同的可访问性;
不允许对不同枚举类型的成员进行比较,即使它们的结构和名称完全相同。
由于枚举类型的成员是常量,即使在没有该枚举类型的变量时它们也可以访问。使用枚举类型名、成员引用运算符加成员名的形式就可以实现对枚举类型成员的访问;
基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。
通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。但是,还可以将枚举嵌套在类或结构中。
使用示例
版权声明: 本文为 InfoQ 作者【陈言必行】的原创文章。
原文链接:【http://xie.infoq.cn/article/0cb5169dd2e783fb58a9808b8】。未经作者许可,禁止转载。
评论