C 點點滴滴 Enum

2022-01-18 08:56:55 字數 1189 閱讀 6092

列舉是在寫程式的過程中經常會遇到的型別。對於enum,.net提供了很多使用的方法:

1.parse:將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。 (msdn)

parse方法是經常會用到的乙個方法,它有兩個過載形式:

public static object parse( type enumtype, string value )

public static object parse( type enumtype, string value, bool ignorecase )

2.getnames和getname

●getnames:檢索指定列舉中常數名稱的陣列。(msdn)

方法原型:public static string getnames(type enumtype)

●getname :在指定列舉中檢索具有指定值的常數的名稱。(msdn)

方法原型:public static string getname(type enumtype, object value)

3.getvalues

●getvalues:檢索指定列舉中常數值的陣列。(msdn)

方法原型:public static array getvalues( type enumtype )

注 :不存在getvalue方法。

4.isdefined:返回指定列舉中是否存在具有指定值的常數的指示。(msdn)

方法原型:public static bool isdefined( type enumtype, object value )

當在將乙個值轉化列舉的時候,如果遇到這個值並非列舉的一分子的時候,會怎麼樣呢?

c# code

c# code

class

program

static

void

main(

string

args)

}上面的**會正常執行,並不會丟擲任何異常,因此當我們把這樣乙個值轉換成列舉的時候可能會面臨很多潛在的問題。不過isdefined可以為我們解決這個問題,在轉換時先用這個方法判斷一下將解除我們的安全隱患。既然parse方法可以接受乙個值也可以接受乙個 常數名稱作為引數,那為什麼isdefined只有值做引數的形式呢?答案是如果傳遞乙個非法的常數名稱程式會丟擲異常,而不會像上面的例子一樣正常執行。

(更多的介紹請參看msdn)

C 的點點滴滴

函式傳值有三種方式 按值傳遞 pass by value 按位址傳遞 pass by address 和按引用傳遞 pass by reference 不同的是,按值傳遞方式中,函式部分不能改變主函式中實參的值。而按位址傳遞和按引用傳遞均可以改變主函式中實參的值。按值傳遞,實參和形參均為同一型別的物...

acm 點點滴滴

qsort排序方法 六種qsort排序方法 本文中排序都是採用的從小到大排序 一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 ...

sizeof 點點滴滴

1.靜態變數是存放在全域性資料區中的,sizeof計算棧中分配的大小,所以類或結構體中的靜態變數時不會計算在sizeof內的!2.sizeof和strlen的區別 1 sizeof操作符的結果型別是size t,它在標頭檔案中的typedef為unsigned int型別。該型別保證能容納實現所建立...