标签:style blog http color os 2014
作业要求: 输出TypeCode枚举类内所有的值
1 //获取枚举类型的值 2 //var V = Enum.GetValues(typeof(TypeCode)); 3 4 //1、名称 5 Console.ForegroundColor = ConsoleColor.Yellow; //设置颜色 6 Console.WriteLine("输出名称:"); //提示 7 foreach (var name in Enum.GetNames(typeof(TypeCode))) //循环 8 Console.WriteLine(name); //输出 9 Console.WriteLine("--------分割线---------"); //分割 10 //2、编号 11 Console.ForegroundColor = ConsoleColor.Green; //设置颜色 12 Console.WriteLine("输出编号:"); //提示 13 foreach (int num in Enum.GetValues(typeof(TypeCode))) //循环 ② var 14 Console.WriteLine(num); //输出 15 Console.WriteLine("--------分割线---------"); //分割 16 //倒序名称 17 Console.ForegroundColor = ConsoleColor.Red; //设置颜色 18 var k = Enum.GetValues(typeof(TypeCode)).Length; //提示 19 for (int i = k; i >= 0; i--) //循环 20 { 21 Console.WriteLine(Enum.GetName(typeof(TypeCode), i)); //倒序输出 22 } 23 Console.Read();
枚举内容的输出在于 1 Enum.GetValues(typeof(TypeCode)); 这句话
前两个是用foreach遍历出来的
第一个直接getNames得到所有名称然后输出;
第二个用的是getValues这个比较有意,它得到是枚举, 但取决于遍历时候所声明的类型,也就是说 在注释②的位置 那里如果num的类型声明为var的话 那么num输出就是默认的枚举名称。如果是int 那么他输出的就是枚举的值,这点在第三个示例里可以看出;
第三个同样是getValues 当我直接赋值给var的时候,得到的就是整个枚举的Array集合。这里我取了个Length获取长度给k。接下来 坑爹的来了!
看上图 我是倒序循环输出的枚举值,有没有发现这里有个“坑”? 断开了! !!
我擦,吓尿,调试了几遍都是到这里会跳过去?! F12了一下TypeCode这个类,真相了!!!
看下面倒数第二行! KAO! 丫就没有17!!!想了好久也不知道为什么会这样?!
有知道的大神,帮个忙,本人学历不高,幼本毕业,求个通俗易懂的解释!拜谢!
作业都交完,老大点评这次非常不满意,因为我们的作业并没有真正理解到枚举类型的含义。
他要告诉我们的是,枚举类型 是int的另一种表现形式。而非让我们输出一串结果。
1 /// <summary>2014-07-08</summary> 2 public static void function质数() 3 { 4 for (int i = 0; i < 30; i++) 5 { 6 Console.WriteLine((TypeCode)i); 7 } 8 9 }
这才是他想教给我们的。
编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!
实践出真知!
(20140708作业)编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!,布布扣,bubuko.com
(20140708作业)编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!
标签:style blog http color os 2014
原文地址:http://www.cnblogs.com/Ex-Oj/p/3834864.html