C# 关于枚举

关于枚举


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


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

你可能感兴趣的:(enum,C#)