C# 关于枚举

来源:互联网 发布:帝国cms采集教程 编辑:程序博客网 时间:2024/06/11 01:51
关于枚举


枚举的意义:
通过有限离散的整形来限定取值访问,防止无意义数据的垂涎。


枚举的格式:
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
0 0