環境:
c#中的列舉本質上說是乙個整數,但它同時和字串又具有對應關係,可以從vs的提示中看出:
下面**演示列舉與數字和字串的相互轉換:
public
static
void
main
(string
args)")
;//數字轉列舉
console.
writeline
($"數字轉列舉 => ");
//列舉轉字串
console.
writeline
($"列舉轉字串 => ");
//字串轉列舉
console.
writeline
($"字串轉列舉 => ");
console.
writeline
("ok!");
console.
readline()
;}public
enum enumdegree
因為c#中的列舉本身是數字,所以只要列舉的值只要是設定的恰當,完全可以表示多種狀態。
首先看如下的使用方式:
class
program")
; console.
writeline
($"test contains enumtest.none =>");
console.
writeline
($"test contains enumtest.first =>");
console.
writeline
($"test contains enumtest.second =>");
console.
writeline
("ok!");
console.
readline()
;}}[
flags
]public
enum enumtest
輸出結果:
位列舉的理解:
這裡主要解釋下怎麼恰當設定列舉的值:
我們直接將上面的列舉定義用二進位制表示一下:
[
flags
]public
enum enumtest
這樣再回過頭來看看想想「復合列舉的多狀態是怎麼儲存的?怎麼判斷是否包含某個狀態的?」
一目了然了吧!
using system;
using system.collections;
using system.data;
using system.io;
using system.net;
using system.threading;
using system.threading.tasks;
namespace testdi
-", i,
(flagsdemo)i);}
for(
int i =
0; i <
16; i++)-"
, i,
(single)i);}
flagsdemo d =
(short
)flagsdemo.five + flagsdemo.three;
console.
writeline
(d);
}public
static
void
main
(string
args)}[
flags
]enum flagsdemo :
short
enum single :
short
}
列舉與位列舉
列舉型別 是用於宣告一組命名的常數的基本資料型別 值型別 列舉的定義 宣告enum變數 enum name 指定列舉的型別名稱 enumeration list 是乙個用逗號分隔的識別符號列表 所有列舉型別都隱式地繼承system.enum型別,system.enum型別是繼承自system.val...
C語言 列舉與位運算
在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,c語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 列舉 型別的變數取值不...
C 中列舉與位列舉的區別和使用
呼叫普通列舉時如圖所示,呼叫位列舉多選時需要中間加乙個 列舉和位列舉的定義 位列舉定義時需要加乙個 flags 還要賦值第二個是第乙個的二倍 class program 判斷這個學生是否包含 if hobby.吃.hasflag hobby.吃 console.readkey 學生類 public ...