首页 > 编程 > C# > 正文

C#中的枚举类型

2023-05-08 19:02:36
字体:
来源:转载
供稿:网友

与C/C++类似,C# 中的枚举(enumeration)类型也是一个命名常量的集合。枚举声明的完整格式为(灰色方括号[ ]中的内容是可选的):

[[属性]] [枚举修饰符] enum 标识符 [: 整型基类型] {
       [[属性]] 标识符 [ = 常量表达式],
       ……
       [[属性]] 标识符 [ = 常量表达式]
}[;]

其中,枚举修饰符有:new、public、protected、internal、private, 默认为private。默认的整数基类型为int。常用格式为:

enum 枚举名 [: 基类型] {枚举成员名 [= 枚举值], ……,
              枚举成员名 [= 枚举值]};
例如:
enum Color {Red, Green, Blue}
enum Days : byte {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
C# 的枚举类型都是抽象类类型System.Enum结构的派生值类型。Enum的C#定义如下:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible
包含多个公用方法成员(参见表17-7),可以在用户定义的枚举类型中,使用这些公用方法。
17-7 Enum类的部分静态公用方法
名称
说明
Format
根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式。
GetName
在指定枚举中检索具有指定值的常数的名称。
GetNames
检索指定枚举中常数名称的数组。
GetUnderlyingType
返回指定枚举的基础类型。
GetValues
检索指定枚举中常数值的数组。
IsDefined
返回指定枚举中是否存在具有指定值的常数的指示。
Parse
已重载。将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
与C++不同,你不能用整数值来代替枚举值。而且枚举可以作为顶层类型,也可以作为类的成员(嵌套类型),但是不能作为局部类型来定义,这点也与C++不同。还有一个与C++不同点是,在C# 的枚举类型定义体后的分号是可选的,而在C++中却是必须的。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表