1、列舉的意義
我們玩角色扮演遊戲的時候,角色一般來說有多種:戰士、法師、射手等,我們可以用:0、1、2來分別代表這三種角色型別;
角色型別
型別編號戰士0
法師1射手2
……
如果角色型別過多,那在使用的時候就很容易混淆,而列舉可以輕鬆解決這個問題;
因為列舉可以在型別名稱和型別編號之間隨時轉換;
也就是說,儲存為列舉型別後,乙個列舉值可以既是戰士,也是編號0,可以隨意轉換
2、定義列舉
接下來定義乙個列舉:訪問標識+列舉關鍵字+列舉名
///
/// 角色型別列舉
///
public
enum roletype
如上,我在列舉中第乙個元素後加上了「 = 0」,那麼後面的每乙個元素的數字編號會在前乙個元素的基礎上加一;
也就是說:master = 1, shooter = 2,這裡的數字僅僅是編號,不要理解為master的值是1,在這裡master與1是等價的。
3、列舉的api 及應用
(1)根據列舉元素名獲得其編號,比如:傳入master返回數字 1
int result =
(int
)enum.
parse
(typeof
(roletype)
,"master"
);
首先:enum.parse() 方法可以將乙個字串轉換為對應的列舉物件
裡面的第乙個引數是乙個列舉型別,可用:typeof(roletype)得到,第二個引數是乙個字串
那麼:**enum.parse(typeof(roletype), 「master」)**得到的結果就是乙個物件object
這個物件裡面裝有roletype.master
這時候只需要(int)強轉為整形資料就可以得到master的編號
(2)根據列舉元素編號獲得其名稱,比如:傳入1 返回字串 master
string result = enum.
getname
(typeof
(roletype),1
);
首先:enum.getname() 方法可以返回指定列舉中具有指定值常數的名稱
第乙個引數是乙個列舉型別,可用:typeof(roletype) 得到,第二個引數是乙個常數
enum.getname(typeof(roletype), 1)返回的結果就是乙個字串
c 學習雜記
概念 物件 object 類 class 物件導向 由類組成 是以介面形式存在 易於移植 可以將每乙個變數都看作是物件 每一種資料型別都可以看做是類 類中分為 public protected private 公有 保護 私有 變數 公有變數 任何人都可以訪問 保護變數 自己與自己派生 繼承的都可以...
c 學習筆記 雜記
字串的輸入 cin 不存在吃掉前乙個回車的情況 cin使用空格 製表符和換行符來確定字串的結束位置。會出現以下問題 遇到空格終止輸入,不能得到完整的一行 include using namespace std const int maxn 20 intmain in put li william o...
C 列舉型別Enumerable及其擴充套件
重要的資料型別 列舉型別是程式設計裡重要的一種資料型別,了解其本質和擴充套件型別的使用方法,將有助於解決程式設計中遇到的資料處理問題。ienumerable介面 實現了ienumerable介面的集合表明該集合能夠提供乙個enumerator 列舉器 物件,支援當前的遍歷集合。ienumerable...