枚举这个名词大家都听过,很多小伙伴也使用过,
那么枚举在开发中能做什么,使用它后能给程序代码带来什么改变,为什么用枚举。
各位看官且坐下,听我一一道来。
为什么使用枚举?
1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。
2、枚举使代码更易于维护,有助于确保给变量指定合法的、期望的值。
3、枚举使代码更易输入和读取。
枚举有哪些用法?
1、简单枚举
2、标志枚举
1、简单枚举
- 枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
- 枚举是值类型,隐式继承自System.Enum,不能手动修改。System.Enum本身是引用类型,继承自System.ValueType。
- 枚举都是隐式密封的,不允许作为基类派生子类。
- 枚举类型的枚举成员均为静态,且默认为Int32类型。
- 每个枚举成员均具有相关联的常数值。此值的类型就是枚举的底层数据类型。每个枚举成员的常数值必须在该枚举的底层数据类型的范围之内。如果没有明确指定底层数据类型则默认的数据类型是int类型。
- 枚举成员不能相同,但枚举的值可以相同。
- 枚举最后一个成员的逗号和大括号后面的分号可以省略
C#提供类一个类来方便操作枚举,下面给出这个类的常用方法:
C#枚举常用方法
方法 | 名称 |
CompareTo | 将此实例与指定对象进行比较并返回一个对二者的相对值的指示 |
Equals | 指示此实例是否等于指定的对象 |
Format | 根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式 |
GetName | 在指定枚举中检索具有指定值的常数的名称 |
GetNames | 检索指定枚举中常数名称的数组 |
GetNames | 检索指定枚举中常数名称的数组 |
GetTypeCode | 返回此实例的基础 TypeCode |
GetUnderlyingType | 返回指定枚举的基础类型 |
GetValues | 索指定枚举中常数值的数组 |
HasFlag | 确定当前实例中是否设置了一个或多个位域 |
IsDefined | 返回指定枚举中是否存在具有指定值的常数的指示 |
Parse | 将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 一个参数指定该操作是否不区分大小写 |
TryParse | 将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 用于指示转换是否成功的返回值 |