C 之列舉型別總結

2021-08-04 09:44:10 字數 2732 閱讀 6565

一、enum位域[flags]

[flags]

public enum week  

[flags]

public enum week  

1.、在列舉定義加上關鍵字 [flags],表示這個是位列舉

2.、「&」:表示兩邊是否其中乙個是另外乙個的子集,如果是返回子集,否則返回0

(如果其中乙個包含另外乙個,返回被包含的,否則返回0)用「&"的判斷這個列舉值是否出現在這個列舉中

3、「|」:表示兩邊求並集(元素相加,相同元素只出現一次)

4、「^」:表示從兩者的並集中去除兩者的交集(把兩個的元素合併到一起,如果兩個中有公共元素,要將其除去)

5、「~」:表示取反

6、名稱和下標的轉換

week weeks = week.tuesday | week.monday;

debug.log (weeks );-->monday, tuesday

weeks = week.monday & weeks; 

debug.log (weeks );-->monday

weeks =   weeks & week.monday; 

debug.log (weeks );-->monday

weeks = (week.monday | week.wednesday)^ (week.tuesday | week.monday); 

debug.log (weeks );-->tuesday, wednesday

weeks = (week.monday | week.wednesday) ^ (week.tuesday | week.sunday); 

debug.log (weeks );-->monday, tuesday, wednesday, sunday

week = week.tuesday | week.monday | week.wednesday;  

weeks = weeks &(~week.monday);-->tuesday, wednesday  

weeks = week.tuesday | week.monday;

debug.log ((int )weeks );-->3 tuesday, tursday

weeks = (week )enum.parse (typeof(week ),"10");

debug.log (weeks );--> tuesday, tursday

二、enum、int、string的相互轉換

1、enum-->string

(1)利用object.tostring()方法:如debug.log (week.tuesday.tostring ())的值是"tuesday"字串;

(2)利用enum的靜態方法getname:

public static string getname(type enumtype,object value)

public static string getnames(type enumtype)

例如:debug.log (enum.getname (typeof(week), 2) );-->tuesday與debug.log (enum.getname (typeof(week), week.tuesday) );-->tuesday

2、string-->enum

(1)利用enum的靜態方法parse:

public static object parse(type enumtype,string value)

例如:weeks = (week )enum.parse (typeof(week ),"10");

debug.log (weeks );--> tuesday, tursday

3、enum-->int

(1)因為列舉的基型別是除 char 外的整型,所以可以進行強制轉換。

例如:(int)week.monday, (byte)week.monday

debug.log(

week.monday

.tostring("d" ));

(2)遍歷列舉
type weektype = typeof (week);

array arrays = enum.getvalues(weektype);

for (int i = 0; i 4、int-->enum

(1)可以強制轉換將整型轉換成列舉型別。

例如:week weeks= (week)2; -->weeks=tuesday;

(2)利用enum的靜態方法toobject。public static object toobject(type enumtype,int value)

例如:week weeks = (week)enum.toobject(typeof(week), 2),那麼weeks即為week.tuesday

(3)遍歷列舉

foreach (week typeweek in enum.getvalues(typeof (week)))

5、判斷某個整型是否定義在列舉中的方法:enum.isdefined

public static bool isdefined(type enumtype,object value)

例如:enum.isdefined(typeof(week), n))

C 之列舉型別與列舉類

enumtype.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std 定義乙個列舉型別,可以通過這個定義相應的列舉成員的識別符號 並用其中的乙個為他們賦值 定義在main函式體外屬於全域性變數 enum gameresult ...

C 之列舉型別探索

一 enum初識 作用 enum的全稱是enumeration意思是列舉,可以用一些符號表示一組屬性值,也就是將數字符號化,因為數字表面看不出任何意義,可讀性很差。例如,在貪吃蛇遊戲中表示地圖資訊 enum mapinfo 相比於直接用0,1,2對地圖賦值可讀性強很多。但是說到符號化數字,可以使用 ...

C 之列舉型別enum

某些資料只有有限的幾種可能值,雖然可以用int char等型別來表示它們,但是對資料的合法性檢查卻是一件很麻煩的事。比如,如果用整數0 6代表一星期的7天,那麼變數8便是不合法的資料。列舉就是專門用來解決這種問題的。將需要的變數值一一列出來,便構成了乙個列舉型別。宣告形式 enum 列舉型別名 例如...