我理解的枚舉就是編程中約定的一個“可選值”;例如QQ的在線狀態,分別有 在線,Q我吧,隱身,忙碌等等。。。我覺得這就是一個枚舉。
1.普通枚舉
1) 實例
public enum UserState
{
QMe,
OnLine,
OffLine //後面省略
}
ps:像上邊的枚舉,可以單獨寫在一個CS文件中。
2)普通枚舉的性質
1. 互斥性
2. 每一個值都有一個數值來表示
3. 枚舉在編譯時,就已經用數值來表示了。
3)字符串轉換成枚舉
(UserState)Enum.Parse(typeof(UserState),"Red") ;
4)枚舉轉換成數值、字符串
(int)myColor.Red;
myColor.Red.ToString();
2.標識枚舉
但一個事物具有多個屬性時,普通枚舉就不夠用了。
普通枚舉是互斥的,標識而枚舉是可以組合的。
1)定義
//使用以後結果是Tostring()的,而不是數字的。
public enum GoodMan
{
高=1,
富=2,
帥=4 //這裡必須是2的N次方,切不能重復。
}
2)狀態組合(或運算)
GoodMan winter = GoodMan.高| GoodMan.富| GoodMan.帥;
3)判定winter中是否具有某個枚舉值(與運算)
if(winter&GoodMan.高==GoodMan.高)