c# 中,所有列舉都是 system.enum 類的例項,system.enum不可以被派生。但是這個類有一些靜態方法,可以用來發現有關列舉例項中操作值的資訊。
預設情況下,列舉中每個元素的基礎型別都為 int。 可以使用冒號指定另一種整數型別:
enum days: byte
1、列舉能夠使**更加清晰,它允許使用描述性的名稱表示整數值。
2、列舉使**更易於維護,有助於確保給變數指定合法的、期望的值。
3、列舉使**更易輸入。
1、簡單列舉
c#提供類乙個類來方便操作列舉,下面給出這個類的常用方法:
方法名稱
compareto
將此例項與指定物件進行比較並返回乙個對二者的相對值的指示
equals
指示此例項是否等於指定的物件
format
根據指定格式將指定列舉型別的指定值轉換為其等效的字串表示形式
getname
在指定列舉中檢索具有指定值的常數的名稱
getnames
檢索指定列舉中常數名稱的陣列
gettypecode
返回此例項的基礎 typecode
getunderlyingtype
返回指定列舉的基礎型別
getvalues
索指定列舉中常數值的陣列
hasflag
確定當前例項中是否設定了乙個或多個位域
isdefined
返回指定列舉中是否存在具有指定值的常數的指示
parse
將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。 乙個引數指定該操作是否不區分大小寫
tryparse
將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。 用於指示轉換是否成功的返回值
要顯示指定列舉的底層資料型別很簡單,只需在宣告列舉的時候加個冒號,後面緊跟要指定的資料型別。
enum *** : byte顯式設定列舉的成員常量值,預設是從0開始,逐個遞增的。但是以下例子卻設定成了1,2,3,4,5,6,7,0。而且成員值可以一樣的。//顯示指定列舉的底層資料型別
; //
此分號可以省略
enum示例,由列舉值獲取列舉名稱與由列舉名稱獲取列舉值week
console.writeline((
int)week.monday); //
獲取值
class2、標誌列舉program
}enum
man
標誌列舉要在頂部加[system.flags]特性進行宣告。而且列舉支援組合運算。先來看個例子
class這種位運算是非常有用的,在sql語句裡也支援位運算。也就是說,把乙個列舉運算後的結果存入資料庫之後,還能夠按照你的要求讀取出來。比如:program
else
console.readkey();}}
[system.flags]
public
enum
week
將乙個"白美"存如資料庫的值存入資料庫,那麼存入去的就是整型5。
那麼我想讀出所有的"白"資料列表怎麼讀呢?白,可以是純白"1",也是是白富3,可以是白美5,也可以是白富美7,你可以用in來讀,但是更好的方法是在sql語句中同樣使用位運算。
select當引數、返回值、變數等型別可以使列舉,盡量使用列舉(要注意考慮分類的穩定性)*from table1 where tag &
1=
1 //tag是列名
select
*from table1 where tag |
1= tag
大多數情況下都可以使用int型別列舉,下列情況除外。
下面寫乙個:列舉繫結mvc3下拉列表的示例:
控制器**:
namespace檢視**:mvcstart.controllers
return
view(***list);}}
public
enum
***
}
@model dictionary<生成的html**:string
, int
>
<
select
>
@foreach(var item in @model)
select
>
<再來乙個例子,獲取列舉描述select
>
<
option
value
="1"
>male
option
>
<
option
value
="2"
>female
option
>
<
option
value
="3"
>other
option
>
select
>
publicstatic
class
getdescription
return
en.tostring();}}
public
enum
***
C 學習之列舉
列舉分為一般列舉和標誌列舉兩類。新建控制台應用程式,原始碼如下 示例1 一般列舉 using system using system.collections.generic using system.linq using system.text namespace 03列舉 定義qq狀態列舉型別 預...
C 學習筆記 列舉
一 c 的enum工具提供了另一種建立符號常量的方式,這種方式可以代替const。它還允許定義新型別,但必須按嚴格的限制進行。使用enum的語法與使用結構類似。例如 enum spectrum 這句語法包含兩個意義 1 讓spectrum成為新型別的名稱 spectrum被稱為列舉,就像struct...
C學習筆記 列舉
可以使用列舉 enumerated type 宣告代表整數常量的符號名稱,關鍵字enum建立乙個新的列舉型別 實際上,enum常量是int型別的 列舉的本質就是int型的常量 enum spectrum 申明乙個列舉型別enum spectrum color 定義乙個列舉變數void func en...