enum orientation : int
{
north,
south,
east,
west
}在默认情况下,每个枚举成员都会根据定义的顺序(从0开始),自动赋给对应的基本类型值,例如上边例子中north的值为0,south的值为1,east的值为2,west的值为3。当然,我们也可以手动给枚举成员赋一个基本类型值,而没有赋值也枚举成员也会自动获得一个值,它的值是比最后一个明确声明的值大1的序列。例如:
enum orientation : int
{
north = 6,
south,
east = 10,
west
}上例中south的值为7,west的值为11。
枚举类型的变量在某一时刻只能取得某一个枚举成员的值,例如:
orientation myDirection = oriention.south;
Response.Write(myDirection);虽然显示为south,但是当你将它和字符串south进行比较(myDirection=="south")时会出错,要获取枚举成员的string类型和基本类型值可使用Convert类的方法进行转换:
Response.Write(Convert.ToString(myDirection));
Response.Write(Convert.ToInt16(myDirection));使用枚举比使用无格式的整数具有以下优势:一是枚举使得代码易于维护,有助于确保给变量指定合法的、期望的值。二是枚举使得代码更为清晰,其允许使用描述性的名称表示整数值,而不是用含义模糊的数字来表示。三是枚举使得代码更易于键入,这主要得力于Visual Studio 2005的智能感知功能。开发人员应学会聪明、合理地使用枚举结构,以便节省大量时间,提高工作效率。
参考文章
1.郝刚.2006.《ASP.NET 2.0 开发指南》.人民邮电出版社.49~50
2.Karli Wstson,Christian Nagel.2006.《C#入门经典》(第3版).清华大学出版社.81~84
2008-11-25补充:字符串和基本类型值转换为枚举
orientation test = orientation.south;
//字符串转枚举
orientation item1 = (orientation)Enum.Parse(typeof(orientation),"south",true);
Response.Write(test == item1);//返回:True
//数值转枚举
orientation item2 = (orientation)Enum.Parse(typeof(orientation), "2", true);
Response.Write(test == item2);////返回:True
评论(0)
暂无评论。