c#枚举描述

1、枚举遍历

public enum e_Sex{
male=1,
female=2
}

 foreach (var value in Enum.GetValues(typeof(e_Sex)){
/*
获取枚举数值
e.g. 1,2
Convert.ToInt32(value)
*/
/*
获取枚举定义.
e.g. mail,femal 
value.ToString()
*/
}

这些都是给计算机看的。如果需要将枚举展示给用户,如上面枚举中的性别,男、女

可以通过下面的方式来实现。

枚举定义:

public enum e_Sex{
[System.ComponentModel.Description("")]
male=1,
[System.ComponentModel.Description("")]
female=2
}

上述遍历枚举的时,再增加下面的方法

object[] objAttrs = value.GetType().GetField(value.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
 if (objAttrs != null &&
                          objAttrs.Length > 0)
                      {
                          DescriptionAttribute descAttr = objAttrs[0] as DescriptionAttribute;
    
/* descAttr.Description;*/
                      }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章