字符串轉(zhuǎn)枚舉類型 請教怎么直接將枚舉數(shù)據(jù)enum直接轉(zhuǎn)換成字符串?
請教怎么直接將枚舉數(shù)據(jù)enum直接轉(zhuǎn)換成字符串?如果只需要枚舉名稱,可以使用:tostring()返回枚舉常量的名稱,該名稱包含在聲明中。您可以重寫此方法,盡管它通常是不必要的。當(dāng)有更“程序員友好”的
請教怎么直接將枚舉數(shù)據(jù)enum直接轉(zhuǎn)換成字符串?
如果只需要枚舉名稱,可以使用:tostring()返回枚舉常量的名稱,該名稱包含在聲明中。您可以重寫此方法,盡管它通常是不必要的。當(dāng)有更“程序員友好”的字符串形式時(shí),應(yīng)該使用枚舉類型重寫此方法。如果需要枚舉特定值,可以使用:for(枚舉測試e:枚舉測試值()) { 系統(tǒng)輸出打?。ɡ鐃ostring())}
是的。
以C語言為例,在內(nèi)存中創(chuàng)建一個(gè)字符串至少需要存儲一個(gè)字符數(shù)組,因?yàn)樗枰鎯Y(jié)束標(biāo)識符;而枚舉實(shí)際上是一種結(jié)構(gòu),枚舉項(xiàng)可以定義為整數(shù),這比字符串存儲更方便、更便宜。
此外,如果字符串用作枚舉,則字符串很容易被錯誤寫入,并且枚舉被定義為數(shù)字常量。編譯器在編譯時(shí)容易發(fā)現(xiàn)錯誤,并提示開發(fā)人員及時(shí)改正,易于維護(hù)。
把string當(dāng)enum用,有性能損失嗎?
定義顏色。讀取字符串時(shí),可以使用以下代碼獲取相應(yīng)枚舉類型的值
public enum color{red=1,green=2,blue=3}
靜態(tài)void main(string[]args){
string col=“blue”
color GetType=(color)枚舉解析(typeof(Color),col)控制臺寫入線( getType.GetHashCode())
如果要獲取枚舉名的輸出,可以直接用GetType替換output語句