通用的方法獲取列舉內各值的描述
阿新 • • 發佈:2018-12-30
1.定義列舉時直接用中文
由於VS對中文支援的很不錯,所以很多程式設計師都採用了此方案.
缺點:1.不適合多語言 2.感覺不太完美,畢竟大部分程式設計師大部分程式碼都使用英文
首先多謝兩位給我的提示,發現在上個版本中所存在的問題:
一、列舉型別的各個列舉值,應該屬於“欄位”。
二、在獲得列舉自定義屬性時,只獲得列舉型別,而不沒有獲得所屬欄位的自定義屬性。
完整工程下載
現在解決方案如下:
public enum OrderStateEnum
{
[EnumDescription("未開始")]
Ready = 0,
Processing, [EnumDescription("等待中")]
Waiting, [EnumDescription("取消")]
Canceled, [EnumDescription("完成")]
Finished
} 程式碼訪問: 0、獲得列舉型別的文字描述 string txt = EnumDescription.GetEnumText(typeof(OrderStateEnum)); 1、獲得某個列舉值的文字描述: string txt = EnumDescription.GetFieldText(OrderStateEnum.Processing)
comboBox1.ValueMember = "EnumValue";
comboBox1.DisplayMember = "EnumDisplayText";