[C#基语法]之C#枚举类型深入浅出
系列文章导航
[C#基语法]苏飞传奇版 http://www.sufeinet.com/thread-3091-1-1.html
先来看看给它下的定义和规则
1.C#枚举类型是一种值类型,它用于声明一组命名的常数。
2.枚举的成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
3.枚举类型能选择的基础类型有:byte,sbyte,shout,ushout,int,uint,long,ulong ,默认的为int
语法
[C#] 纯文本查看 复制代码 访问修辞符 enum 枚举名:基础类型
{
枚举成员
}
我们以颜色类型为例子来设置一个枚举
比如有Red,Blue,Orange三种颜色
1.直接显式设置类型
[C#] 纯文本查看 复制代码 /// <summary>
/// 颜色枚举
/// </summary>
public enum SkinType : int
{
/// <summary>
/// Red
/// </summary>
Red = 1,
/// <summary>
/// Blue
/// </summary>
Blue = 2,
/// <summary>
/// Orange
/// </summary>
Orange = 3
}
这样是显式设置了枚举的基础类型
当然默认的也是int类型。
2.以默认值方式设置枚举类型的值
[C#] 纯文本查看 复制代码 /// <summary>
/// 颜色枚举
/// </summary>
public enum SkinType : int
{
/// <summary>
/// Red
/// </summary>
Red,
/// <summary>
/// Blue
/// </summary>
Blue,
/// <summary>
/// Orange
/// </summary>
Orange
}
在枚举类型中声明的第一个枚举成员它的默值为零。
以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。
Red=0
Blue=1
Orange=2
这样是不是也很方便
用法
使用方法其实也很简单,就像使用属性一样
[C#] 纯文本查看 复制代码 string colorName = "";
//获取颜色的名称
switch (SkinType)
{
case SkinType.Red:
colorName = "Red";
break;
case SkinType.Blue:
colorName = "Blue";
break;
case SkinType.Orange:
colorName = "Orange";
break;
default:
colorName = "";
break;
}
获取值
[C#] 纯文本查看 复制代码 int SkinValue = 0;
//获取颜色的值
switch (SkinType)
{
case SkinType.Red:
SkinValue = Convert.ToInt32(SkinType.Red);
break;
case SkinType.Blue:
SkinValue = Convert.ToInt32(SkinType.Blue);
break;
case SkinType.Orange:
SkinValue = Convert.ToInt32(SkinType.Orange);
break;
default:
SkinValue = 0;
break;
}
好处和为什么要使用枚举类型
1.在写代码上比较规范这是我的认知,再就是非常的方便 ,比如上面的switch 语句中,下面的每个Case可不是我写出来是自动生成的,只要你填写一个枚举类型,下面的Case是可以自动生成的,很方便
2.用字符和汉字代替数字方便识别
3.其实呢我自己使用枚举,并没有特别的意思就是感觉写起来有结构化,后期使用方法,不需要去记一个0代表什么1代表什么2代表什么的数字状态了。
而是直接看名称就知道是什么意思。
大家说说自己的看法吧。
|