C 列舉的使用簡介

2022-09-26 01:21:10 字數 1945 閱讀 2150

列舉這個名詞大家都聽程式設計客棧過,很多小夥伴也使用過,

那麼列舉在開發中能做什麼,使用它後能給程式**帶來什麼改變,為什麼用列舉。

各位看官且坐下,聽我一一道來。

1、列舉能夠使**更加清晰,它允許使用描述性的名稱表示整數值。

2、列舉使**更易於維護,有助於確保給變數指定合法的、期望的值。

3、列舉使**更易輸入和讀取。

1、簡單列舉

2、標誌列舉

c#提供類乙個類來方便操作列舉,下面給出這個類的常用方法:

c#列舉常用方法

方法名稱

compareto

將此例項與指定物件進行比較並返回乙個對二者的相對值的指示

equals

指示此例項是否等於指定的物件

format

根據指定格式將指定列舉型別的指定值轉換為其等效的字串表示形式

getname

在指定列舉中檢索具有指定值的常數的名稱

getnames

檢索指定列舉中常數名稱的陣列

getnames

檢索指定列舉中常數名稱的陣列

gettypecode

返回此例項的基礎 typecode

getunderlyingtype

返回指定列舉的基礎型別

getvalues

索指定列舉中常數值的陣列

hasflag

確定當前例項中是否設定了乙個或多個位域

isdefined

返回指定列舉中是否存在具有指定值的常數的指示

parse

將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。 乙個引數指定該操作是否不區分大小寫

tryparse

將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。 用於指示轉換是否成功的返回值

如果要顯示指定列舉的底層資料型別很簡單,只需在宣告列舉的時候加個冒號,後面緊跟要指定的資料型別(可指定型別有:byte、sbyte、short、ushort、int、uint、long、ulong)。

顯式設定列舉的成員常量值,預設是從0開始,逐個遞增的。但是以下例子卻設定成了1,2,3,0。而且成員值可以一樣的。

如下示例:由列舉值獲取列舉名稱與由列舉名稱獲取列舉值

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace enumapplication

enum man:int //四大名著列舉 }

}標誌列舉要在頂部加[system.flags]特性進行宣告。而且列舉支援組合運算。

這種位運算是非常有用的,在sql語句裡也支援位運算。也就是說,把乙個列舉運算後的結果存入資料庫之後,還能夠按照你的要求讀取出來。比如:

將乙個"高帥"存如資料庫的值存入資料庫,那麼存入去的就是整型5。

select * from table where column & 1 = 1  //column 是列名

select * from table1 where column  | 1 = column

如下demo:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace enumapplication

else

console.readkey();

} [system.flags]

public enum people:int }

}列舉用好了還是蠻方便的,大家不妨去試試。

C 列舉使用

關於列舉使用的簡單例項 class與struct在列舉中的使用,表示這是乙個強型別的列舉。強型別的形式比普通直接使用enum的好處是,不會被隱式轉換成int,相對於c 的強型別而言,自然是使用class或者struct更加符合強型別。class與struct都是表示進行強型別的列舉,兩者沒有什麼區別...

C 使用列舉

tomato net小結 目錄可減少由數字轉置或鍵入錯誤引起的錯誤。以後更改值很容易。使 更易讀,這意味著 中發生錯誤的概率降低。確保向前相容性。使用列舉可減少將來有人更改與成員名稱對應的值時 出錯的概率。新建列舉類 public enum testenum 新建列舉擴充套件字段 public cl...

C 列舉的使用方式

1首先是如何自定義列舉 public enum classtype 2,將 列舉轉換為 陣列 然後掛接到combox下 combobox cbo newcombobox cbo.datasource system.enum.getnames typeof testenum 繫結 classtypet...