枚举
一、枚举的定义
public enum 枚举名
{
}
定义方式1,如下:
public enum ColorEnum1
{
红色, //注意,系统会默认给它赋值为0
蓝色, //系统赋值为1
黑色, //系统赋值为2
粉红色 //系统赋值为3
}
定义方式2,如下:
public enum ColorEnum2
{
红色=1, //用户自己赋值 所以枚举是一组 符号名称/值 配对
蓝色, // 系统赋值为2
黑色=1, //用户自己赋值1
粉红色 //系统赋值为2
}
所以可以看出,系统会自己给没有赋值的常量赋值,但赋值的方式是按照上一个的值+1来进行操作的
二、枚举的常用操作
1、枚举转换成字符串
(ColorEnum)Enum.Parse(typeof(ColorEnum),要转换的值);
注意:在把字符串转换为枚举过程中,该字符串必须在枚举中是存在此值的,如果该值不存在,系统会提示错误;
2、获取指定值的枚举的常量名称(如ColorEnum,根据1可获得红色)
string str = Enum.GetName(typeof(ColorEnum2), 1);
3、获取枚举类型的所有常量名称
因为枚举是一组固定的常量,所以可以使用枚举中的自带方法,把这些常量转换为字符串数组
//该方法返回的是字符串数组,该数组依次包含了枚举中的所有常量,如红色、蓝色等
string[] enumArray = Enum.GetNames(typeof(ColorEnum));
foreach (string str in enumArray)
{
foreach (string str in enumArray)
{
//变量str即是枚举常量
}
}
4、获取枚举类型所有常量的数值
注意:接受返回值不能使用字符串数组,要用Array,遍历时的实际类型则是数值自己的类型整型
Array array = Enum.GetValues(typeof(ColorEnum));
foreach (int i in array)
{
//变量i即是常量对应的数值
foreach (int i in array)
{
//变量i即是常量对应的数值
}
二、枚举的好处
1、便于用户回忆以前的资料
2、便于少输入代码,使程序更容易编写和维护。
3、防止用户乱输入