CLR笔记-枚举类型

    class Program
    {
        static void Main(string[] args)
        {
            Color color = Color.Red;
            Console.WriteLine(color.ToString());
            Console.WriteLine(color.ToString("G"));//Red
            Console.WriteLine(color.ToString("D"));//十进制数值
            Console.WriteLine(color.ToString("X"));//十六进制
            Console.WriteLine(Enum.Format(typeof(Color),3,"G"));
            Console.WriteLine(Enum.Format(typeof(Color), Color.Red, "G"));
            //获取枚举的数组单个类型为Color
            Color[] colors = (Color[])Enum.GetValues(typeof(Color));
            
            foreach (var item in colors)
            {
                Console.WriteLine("{0,5:D}\t{0:G}",item);
            }
            //获取枚举的对象的字符串
            string[] names = Enum.GetNames(typeof(Color));

            foreach (var item in names)
            {
                Console.WriteLine("{0,5:D}\t{0:G}", item);
            }
            
            //使用Parse将符号转化成Color类型,下面两种形式都可以
            //Color c = (Color)Enum.Parse(typeof(Color),"1");
            Color c = (Color)Enum.Parse(typeof(Color), "Red");
            Console.WriteLine(c.ToString());

            //用于参数验证,使用了反射机制
            bool isEnum = Enum.IsDefined(typeof(Color), 1);
            Console.WriteLine(isEnum);

            //将指定的值转化为枚举的枚举成员
            //Color r = (Color)Enum.ToObject(typeof(Color), 1);

            //如果枚举类型中没有的枚举成员,仍然不会报错,输出10
            Color r = (Color)Enum.ToObject(typeof(Color), 10);

            Console.WriteLine(r.ToString());
            Console.Read();


        }

    }

    //默认是从0开始赋值
    internal enum Color
    { 
        White,
        Red,
        Green,
        Blue,
        Orange
    }

posted @ 2014-03-31 17:21  haiziguo  阅读(516)  评论(0编辑  收藏  举报