一,什么是枚举?
枚举是一种独特的值类型,用于声明一组具有相同性质的常量.
二,为什么要使用枚举?
方便编程,使程序清晰易懂,编程应尽量避免出现”魔鬼数字”而多用枚举.
三,枚举的声明与使用
public enum LoginEnum
{
LoginSucceed,
UserNameNotExists,
PasswordError
}
LoginEnum le = LoginEnum.LoginSucceed;
四,枚举的特点
- 一般枚举中每个值都是互斥的;
- 枚举中的每个值都有一个对应的数值来表示,默认此数据类型为整型int,从0开始,依次递增;
- 可手动设置每个枚举对应的整数,如:
public enum LoginEnum
{
LoginSucceed,
UserNameNotExists=100,
PasswordError
}
4. 默认枚举是用int来替代的,也可指定其他具体的数据类型,如:
public enum LoginEnum:byte
{
LoginSucceed,
UserNameNotExists,
PasswordError
}
五,枚举与字符串的转换
- 枚举->字符串:
用ToString(),如
LoginEnum le = LoginEnum.LoginSucceed;
string str=le.ToString();
2. 字符串->枚举:
使用场景:已知此枚举名,不想遍历就取出此枚举。
如:
LoginEnum le = (LoginEnum)Enum.Parse(typeof(LoginEnum), "LoginSucceed");
六,标志枚举
- 声明方法,加[Flags]关键字,如
[Flags]
public enum GoodPeopleEnum
{
white=1, //0000 0001
rich = 2, //0000 0010
beautiful4, //0000 0100
high = 8, //0000 1000
handsome = 16 //0001 0000
}
2. 标志枚举不互斥,可组合,如
GoodPeopleEnum gpe = GoodPeopleEnum.beautiful | GoodPeopleEnum.white;
3. 验证一枚举中是否有GoodPeopleEnum.white这一项,可以
bool isExist = ((gpe & GoodPeopleEnum.white) == GoodPeopleEnum.white);