您的位置:首页 > 编程语言 > C#

c#枚举简介

2016-10-05 18:16 323 查看
本文在下面博文基础上修改了些。谢谢原作者。http://www.cnblogs.com/athens/archive/2012/09/05/2671935.html
1. 枚举定义
普通情况下,枚举字段常数可以是汉字,英文,但不能是数字。当不指定值时,默认值从0开始,如下:待处理=0,审核中=1public enum Status
{
待处理,
审核中,
交易终止,
交易完成
}当需要自定义值时则直接在后面赋值即可public enum Status
{
待处理 = 0,
审核中 = 10,
交易终止 = 20,
交易完成 = 99
}定义枚举Descriptionpublic enum Status
{
[Description("未审核")]
Untreated = 0,
[Description("审核中")]
Process = 10,
[Description("交易终止")]
Cancel = 20,
[Description("交易完成")]
Over= 99
}2.枚举取值
通过枚举类型,常量名称取key
Status.待处理/// <summary>
975b
;
/// 得到指定枚举中指定值的常量名称
/// </summary>
/// <param name="typeEnum"></param>
/// <param name="intValue"></param>
/// <returns></returns>
public static string getEnumKeyFromValue(Type typeEnum, int intValue)
{
return Enum.GetName(typeEnum, intValue);
}

/// <summary>
/// 返回指定值的中文描述,如果没有描述,则返回指定值得变量名
/// </summary>
/// <param name="typeEnum"></param>
/// <param name="intKey"></param>
/// <returns></returns>
public static string GetEnumDescription(Type typeEnum, int intKey)
{
FieldInfo objFI = typeEnum.GetField(Enum.GetName(typeEnum, intKey));
DescriptionAttribute[] attributes = (DescriptionAttribute[])objFI.GetCustomAttributes(typeof(DescriptionAttribute), false);
if(attributes.Length > 0)
{
return attributes[0].Description;
}
return GetEnumKeyFromValue(typeEnum, intKey);
}

/// <summary>
/// 将指定枚举绑定到某个List控件中,可以是Dropdownlist也可以是radiobuttonlist
/// </summary>
/// <param name="objLC">控件名称</param>
/// <param name="typeEnum">指定枚举的类型</param>
public static void SetListFromEnum(ListControl objLC, Type typeEnum)
{
ArrayList objAL = new ArrayList();
ListItem objLI;
string strText = "";
string strValue = "";
foreach(int i in Enum.GetValues(typeEnum))
{
//strText = Enum.GetName(typeof(enumPurviews), i);
strText = GetEnumDescription(typeEnum,i);
strValue = i.ToString();
objLI = new ListItem(strText, strValue);
objAL.Add(objLI);
}

objLC.DataSource = objAL;
objLC.DataTextField = "text";
objLC.DataValueField = "value";
objLC.DataBind();
}

/// <summary>
/// 浏览相册所需权限的枚举类型
/// </summary>
public enum enumPurviews
{
/// <summary>
/// 所有人可见
/// </summary>
[Description("所有人可见")]
All = 1,

/// <summary>
/// 仅本人可见
/// </summary>
[Description("仅本人可见")]
OnlyMe = 2,

/// <summary>
/// 仅本人和主编可见
/// </summary>
[Description("仅本人和主编可见")]
OnlyMeAndEditor = 3
}前台:

// 绑定浏览相册所需权限RadioButtonList
protected void BindDDLPurviews()
{
Type typeEnum = typeof(HelperEnum.enumPurviews);
HelperEnum.SetListFromEnum(rblPurviews, typeEnum);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  enum c#