关于枚举
枚举的意义:
通过有限离散的整形来限定取值访问,防止无意义数据的垂涎。
枚举的格式:
enum Name:Type{name1,name2,...}
其中Type默认是int类型,可以的类型是:byte、sbyte、short、ushort、int、uint、long 或 ulong。
实例:
enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
特点:
<1> 可以给枚举类型变量赋以其基类型范围的任何值,不单单局限于已经命名的常量。(通常只用于标志位)
<2> 默认枚举中元素从0开始,依次加1
<3> 可以不使用枚举的自动赋值,自己去重写这个赋值过程
<4> 可以使用枚举中一个值为另一个值赋值,也可以使用整数去赋值
<5> 枚举中允许出现相同的值,但是我感觉这样没有意义。
class Program
{
static void Main(string[] args)
{
Ex dd = Ex.cat;
Console.WriteLine(dd == Ex.mouse); // output true
Console.WriteLine( Ex.bird == Ex.chichen); //output true
}
enum Ex:byte
{
dog,
cat,
mouse = cat, //用已有值为新的值赋值
fox = 1, //用常数赋值
bird = 2,
chichen = 2 //包含相同的常数
}
}
<6> 枚举用于标志位
enum Ef : long
{
one = 0x00,
two = 0x01,
three = 0x10
}
static void Main()
{
Ef ff = Ef.three | Ef.two;
Console.WriteLine((int)ff); //output 17
}
<7>枚举值的操作
foreach (byte i in Enum.GetValues(typeof(Ex)))
Console.WriteLine(i);
foreach (string str in Enum.GetNames(typeof(Ef)))
Console.WriteLine(str);
结果:
0
1
1
1
2
2
one
two
three