C 中列舉型別和int型別的轉化

2022-02-23 00:53:10 字數 1928 閱讀 8451

先定義乙個列舉型別

public

enum propertytype ;

int ->enum 

int d=2;     

propertytype  a=(propertytype)d;

int

propertytype  d = propertytype.小學;       

int a = convert.toint32(d);

將乙個或多個列舉常數的名稱或數字值的字串表示轉換成等效的列舉物件。

public

static

object parse(

type enumtype,

string

value)引數

enumtype型別:system.type

列舉型別。

value型別:system.string

包含要轉換的值或名稱的字串

返回值 型別:system.object

enumtype 型別的物件,其值由 value 表示。

如果我們有兩個enum,

1

publicenumcolors

2

3

publicenumbgcolors

看起來差不多。

有一天有需要把乙個變成另乙個來用。可能會寫成這樣:

1

colors font_color = colors.blue;

2

bgcolor bg = (bgcolor)font_color;

看起來可以,編譯也對。但實際上是不對的,因為實際上是轉成enum所代表的int,對應的結果往往不是我們想要的。

正確的作法是 

1

colors font_color = colors.blue;

2

(bgcolor)enum.parse(typeof(bgcolor), font_color.tostring());

這是一種很簡單的理念,但常常寫成上面的寫法。但日後如果其中之一有變,造成順序有更改的話,就會出現錯誤。

public

static

string

getname(

type enumtype,

object value

)enumtype

型別:system.type

列舉型別。

value

型別:system.object

特定列舉常數的值(根據其基礎型別)。

返回值型別:system.string

乙個字串,其中包含 enumtype 中值為 value 的列舉常數的名稱;如果沒有找到這樣的常數,則為

null。

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

public

static

string

getnames(

type enumtype)引數

enumtype

型別:system.type

列舉型別。

返回值型別:system.string

enumtype 的常數名稱的字串陣列。

view code

C 中將string型別轉化為int型別

寫程式需要將string轉化為int,所以就探索了一下。方法一 atoi函式 atoi函式將字串轉化為整數,注意需要stdl程式設計客棧ib庫。所以就嘗試了一下 include include include using namespace std int main 然後就www.cppcns.co...

flex中的int型別和Number型別

下午想寫乙個方法,根據物件的型別返回格式化後的字串。對日期及字串型別的相對容易判斷,對數字型的本想做成如果是number則顯示2位小數 因系統中金額一般是顯示2位小數 於是開始研究怎麼判斷int和number,寫了一段測試 列印出來後發現,不管宣告乙個物件o為int還是number並賦值,o is ...

C 中列舉型別

列舉型別是一種的值型別,它用於宣告一組命名的常數。1 列舉的宣告 列舉宣告用於宣告新的列舉型別。訪問修辭符 enum 列舉名 基礎型別 基礎型別必須能夠表示該列舉中定義的所有列舉數值。列舉宣告可以顯式地宣告 byte sbyte short ushort int uint long 或 ulong ...