C 中的列舉型別(enum type)

2022-03-23 21:22:23 字數 1785 閱讀 2633

ylbtech 原文 c#中的列舉型別(enum type)

列舉型別(enum type)是具有一組命名常量的獨特的值型別。在以下示例中:

enumcolor

宣告乙個名為 color 的列舉型別,該型別具有三個成員:red、green 和 blue。

列舉具體是怎麼宣告呢?列舉宣告用於宣告新的列舉型別。列舉宣告以關鍵字 enum 開始,然後定義該列舉型別的名稱、可訪問性、基礎型別和成員。具體格式:

修飾詞(new、public、protected、internal、private)enum 列舉型別名:整數型別

列舉型別一般用於列出唯一的元素,如一周的各天、國家/地區名稱,等等。下面的示例**宣告並使用乙個名為 color 的列舉型別,該列舉型別有三個常數值 red、green 和 blue。

usingsystem;

classenumtypeexample

}static void main(string args)}}

//execation result

red

blue

請按任意鍵繼續. . .

乙個列舉的關聯值或隱式地、或顯示地被賦值。如果列舉成員的宣告中具有 constant-expression 初始值設定項,則該常量表示式的值(它隱式轉換為列舉的基礎型別)就是該列舉成員的關聯值。如果列舉成員的宣告不具有初始值設定項,則它的關聯值按下面規則隱式地設定:

如果列舉成員是在列舉型別中宣告的第乙個列舉成員,則它的關聯值為零。否則,列舉成員的關聯值是通過將前乙個列舉成員(按照文字順序)的關聯值加 1 得到的。這樣增加後的值必須在該基礎型別可表示的值範圍內;否則,會出現編譯時錯誤。有關列舉型別成員關聯值賦值案例,參考下例:

usingsystem;

namespacetest

classenumtype

static stringchooseday(day d)

天(即周一),工作",(uint)d);

break;

caseday.tue:

tmp = string.format("你選擇一周中的第天(即周二),工作", (uint)d);

break;

caseday.wed:

tmp = string.format("你選擇一周中的第天(即週三),工作", (uint)d);

break;

caseday.thu:

tmp = string.format("你選擇一周中的第天(即周四),工作", (uint)d);

break;

caseday.fri:

tmp = string.format("你選擇一周中的第天(即周五),工作", (uint)d);

break;

caseday.sat:

tmp = string.format("你選擇一周中的第天(即週六),休息", (uint)d);

break;

caseday.sun:

tmp = string.format("你選擇一周中的第天(即週日),休息", (uint)d);

break;

default:

tmp = "不合法";

break;

}returntmp;}}

}

//execation result

你選擇一周中的第7天(即週日),休息

你選擇一周中的第1天(即周一),工作

請按任意鍵繼續. . .

C 中的列舉型別(enum type)

c 中的列舉型別 enum type 列舉型別 enum type 是具有一組命名常量的獨特的值型別。在以下示例中 enum color 宣告乙個名為 color 的列舉型別,該型別具有三個成員 red green 和 blue。列舉具體是怎麼宣告呢?列舉宣告用於宣告新的列舉型別。列舉宣告以關鍵字 ...

C 中的列舉型別

c 中的列舉 列舉型別是一種的值型別,它用於宣告一組命名的常數。1 列舉的宣告 列舉宣告用於宣告新的列舉型別。訪問修辭符 enum 列舉名 基礎型別 基礎型別必須能夠表示該列舉中定義的所有列舉數值。列舉宣告可以顯式地宣告 byte sbyte short ushort int uint long 或...

C 中列舉型別

列舉型別是一種的值型別,它用於宣告一組命名的常數。1 列舉的宣告 列舉宣告用於宣告新的列舉型別。訪問修辭符 enum 列舉名 基礎型別 基礎型別必須能夠表示該列舉中定義的所有列舉數值。列舉宣告可以顯式地宣告 byte sbyte short ushort int uint long 或 ulong ...