Enum 列舉值 (一) 獲取描述資訊

2022-01-29 22:52:33 字數 2176 閱讀 7040

封裝了方法:

public static class enumoperate

public basedescriptionattribute(string descriptioncn, string descriptionen)

: base(descriptioncn)

private string descriptionen;

public string descriptionen

set }}

/// /// 擴充套件方法,獲得列舉的description中英文

public static enumitem getbasedescription(this enum value, boolean nameinstead = true)

fieldinfo field = type.getfield(name);

basedescriptionattribute attribute = attribute.getcustomattribute(field, typeof(basedescriptionattribute)) as basedescriptionattribute;

e.enumkey = convert.toint32(value);

e.enumvalue = value.tostring();

if (attribute == null && nameinstead == true)

else

}/// /// 擴充套件方法,獲得列舉的description

///

/// 列舉值

/// 當列舉值沒有定義descriptionattribute,是否使用列舉名代替,預設是使用

/// 列舉的description

public static string getdescription(this enum value, boolean nameinstead = true)

fieldinfo field = type.getfield(name);

descriptionattribute attribute = attribute.getcustomattribute(field, typeof(descriptionattribute)) as descriptionattribute;

if (attribute == null && nameinstead == true)

return attribute == null ? null : attribute.description;

}/// /// 把列舉轉換為鍵值對集合

/// 列舉轉換為鍵值對集合

/// dictionarydic = enumutil.enumtodictionary(typeof(season), e => e.getdescription());

///

/// 列舉型別

/// 獲得值得文字

/// 以列舉值為key,列舉文字為value的鍵值對集合

public static dictionaryenumtodictionary(type enumtype, funcgettext)

dictionaryenumdic = new dictionary();

array enumvalues = enum.getvalues(enumtype);

foreach (enum enumvalue in enumvalues)

return enumdic;

}/// /// 獲取列舉的相關資訊

///

/// 列舉的型別

///

public static listgetenumitems(type e)

return itemlist;

}public class enumitem

public string enumvalue

public string descriptioncn

public string descriptionen

}}

列舉:

//港口型別

public enum harbortype

使用:

static void main(string args)

獲取列舉文字值和描述資訊, 列舉轉字典

string name enum.getname value.gettype value 列舉文字值 aa c aa enum.parse typeof aa str 字串轉列舉 返回列舉項的描述資訊。要獲取描述資訊的列舉項。列舉想的描述資訊。public static string getdesc...

獲取列舉 描述

列舉的定義在程式開發中十分方便 net 支援列舉使用中文 比如 public enum enumispaytype 如果需要返回漢字的時候 public int32?paytype public string e paytype return string empty 但是,在比較規範的列舉使用中,...

C 獲取列舉型別中所有描述資訊

1.應用的命名空間 using system.componentmodel using system.reflection 2 定義列舉類 列舉類1 public enum bagtype 23 獲取列舉類所有屬性的描述資訊 獲取描述資訊方法 1 public void getenumdesc tt...