public enum color
可以宣告列舉型別的變數, 如變數 c1, 用列舉型別的名稱作為字首,設定乙個命名常量,來賦予列舉中的乙個值
color c1 = color.red;
console.writeline( c1 );
// 控制台輸出
// red
執行程式, 控制台輸出顯示 red, 這是列舉的常量值。
預設情況下, enum 的型別是 int。 這個基本型別可以改為其他整數型別 (byte、short、int 、帶符號的 long 和 無符號變數)。
命名常量的值從0開始遞增,但它們可以改為其他值:
public enum color : short
使用強制型別轉換可以把數字改為列舉值, 把列舉值改為數字。
color c2 = (color)2;
short number = (short) c2;
還可以使用 enum 型別把多個選項分配給乙個變數, 而不僅僅是乙個列舉常量。為此,分配給常量的值必須是不同的位, flags屬性需要用列舉設定。
[flags]
public enum daysofweek
daysofweek 為每天定義了不同的值。 要設定不同的位, 可以使用 0x 字首指定的 十六進製制輕鬆完成, flags 屬性是編譯器建立值的另乙個字串表示的資訊, 例如給 daysofweek 的乙個變數設定值3, 結果 monday ,如果使用 flags 屬性,結果就是 tuesday 。 有了這個列舉宣告, 就可以使用邏輯或運算子為乙個變數指定多個值:
daysofweek mondayandwednesday = daysofweek.monday | daysofweek.wednesday;
console.writeline( mondayandwednesday );
// 控制台輸出
// monday , tuesday
設定不同的位, 也可以結合單個位來包括多個值, 如 weekend 的值 0x60 是用邏輯或運算子結合了 saturday 和 sunday 。workday 則結合了從 monday 到 friday
的所有日子, allweek 用邏輯或運算子結合了 workday 和 weekend
[flags]
public enum daysofweek
enum 類有時非常有助於動態獲得列舉型別的資訊。 列舉提供了方法來解析字串, 獲得相應的列舉常數, 獲得列舉型別的所有名稱和值。
color red;
if( enum.tryparse("red", out red) )
", red) );
}// 控制台輸出
// red
注意: enum.tryparse() 是乙個泛型方法, 其中t是泛型引數型別。
該方法返回乙個包含所有列舉名的字串陣列:
foreach( var day in enum.getnames( typeof(color) ) )
// 控制台輸出
// red
// green
// blue
為了獲得列舉的所有值, 可以使用 enum.getvalues 。 enum.getvalues 返回列舉值的乙個陣列。 為了獲得整數值, 需要把它轉換為列舉的底層型別, 為此應使用 foreach語句:
foreach( short val in enum.getvalues( typeof(color) ) )
// 控制台輸出
// 1
// 2
// 3
c語言列舉詳解
列舉一般用於定義乙個集合,如色彩,星期等等,他提供了更加貼近實際的對物件的描述,方便了程式設計工作.下面簡單介紹下c語言中的列舉型別和在linux系統中的作用。列舉是乙個被命名的整型常數的集合,列舉在日常生活中很常見。例如表示星期的sunday,monday,tuesday,wednesday,th...
C 列舉型別詳解
列舉型可以隱式的轉換為int型 int型不能隱式的轉換為列舉型,int型必須強制轉換為列舉型。一 列舉型別的定義 enum 型別名 型別名是變數名,指定列舉型別的名稱。列舉值表也叫列舉元素列表,列出定義的列舉型別的所有可用值,各個值之間用 分開。例 enum suit 二 列舉變數說明 列舉變數有多...
C 列舉型別詳解
列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。定義格式 列舉型別的定義格式為 enum 型別名 其中 應用舉例 enum color set1 定義列舉型別color set1 enum week 定義列舉型別week 重要提示 定義列舉型別的主...