C 列舉 及其API C 學習雜記(九)

2021-10-16 01:49:55 字數 1638 閱讀 5460

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...