(20140708作业)编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!

作业要求: 输出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作业)编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!

时间: 2024-12-27 20:22:59

(20140708作业)编程的魅力在于:你不真的跳下去,永远不知道这个坑有多深!的相关文章

技术的魅力在于融汇惯通

最近看了一下车载导航,看到虚拟多碟这个概念. 因为车载导航本身自带了一个吸入式DVD/CD机.但它还内置了一个叫虚拟多碟的系统. 使用时,提示SD卡没准备好. 那一刻顿时就明白了含义. 偶有感慨,其实技术的魅力就在此了. 在此之前,还发现一件事.就是关于有些比较老旧的汽车上的SD卡,对于音乐数量的限制. 可能有些朋友也遇到过.当 SD 卡上存放的 mp3 数量达到500至1000首文件时,只能识别到至多255首.总之是有个限制的. 后来感到很郁闷.想想 SD 卡再大,也只能存放这么多 mp3.百

我给女朋友讲编程-题外话系列(1)--害怕过七夕,不知道买什么礼物

我女朋友在外地出差,平常能够做的就是打打电话,聊聊天. 下周六就是中国的情人节了. 说实话,也许你们觉得七夕很浪漫,但是我是有一点小恐惧,因为不知道送什么礼物给女朋友好.以前给女朋友送过一些礼物,尽管精心准备,有时难免留有遗憾. 不管怎么说,又是一次情人节,我还是需要精心准备一下,于是花时间来搜索礼物,另外也请朋友们给我出一点建议. 下面是我搜到的一些礼物,想看大图片的朋友可以单击小标题.请大家给点建议. 1, 戒指 曾经在网上买了两对情侣戒指,还刻上了双方名字首字母,满心欢喜送出去,女朋友收到

凯撒密码 史上最难的问题(呃,这是编程题目的名字,不是真的最难.....)

史上最难的问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22160   Accepted: 12165 Description 儒略?凯撒生活在充满危险和阴谋的年代,而其中最艰难的状况莫过于求得生存.于是他发明了最早的密码系统之一,用于军队的消息传递. 假设你是凯撒军团中的一名军官,需要把凯撒发送的消息破译出来,并提供给你的将军.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息

Linux环境编程之进程(三):函数间跳转

引言:在编写程序时,经常在函数内部使用goto语句来跳转,从而进行出错处理,那么如果想要在函数之间进行跳转该怎么做呢?使用setjmp和longjmp函数. 给出示例程序: #include <stdio.h> #include <stdlib.h> #include <setjmp.h> static void f1(int, int, int, int); static void f2(void); static jmp_buf jmpbuffer; static

MR作业编程案例-流量统计

流量统计(统计每个用户的上行流量和下行流量及其流量总和) 源数据: 1363157985066     13726230503    00-FD-07-A4-72-B8:CMCC    120.196.100.82    i02.c.aliimg.com        24    27    2481    24681    200 1363157995052     13826544101    5C-0E-8B-C7-F1-E0:CMCC    120.197.40.4           

第二次作业--编程

我的仓库 刚电梯的过程 刚开始写电梯的时候总是不理解题目的意思,不知道输入输出应当长什么样,经过几次的审题后终于理解了题义.起初写了个程序结果经过讨论后发现输出与输入和题义不符于是全篇修改,第二代编码中出现了1层和10层会重复输出的bug经过几次修改终于可以正常的输入输出,不过代码还是无法达到真正的最省时. |||||||||||||| |:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--| |代码行数| 调试的bug数 | 完成该次作业总耗时

C高级地一次作业 编程题第一题

#include<stdio.h>#define N 100int main(){ int a[N]; int i,j,k,n,m,temp=0; scanf("%d %d",&n,&m); i=0; while(i<n) { scanf("%d",&a[i]); i++; } for(j=0;j<m;j++) //移动次数 { temp=a[n-1]; //保存最后一位数 for(k=n-1;k>=0;k--)

如何学好编程(四)——这种方法真的有用吗

相信我,你并不孤独 当你看到这篇文章的标题的时候,你可能就会产生疑惑,这到底是什么方法,是什么好的方法,让大家可以学好编程?相信我,你并不孤独.有这样思考的太多了,我们每天都在寻找个各种方法,想通过种种方法达到成功. “ 当我看到一个方法,我可能会决定这个方法有些道理,但是我不确定.问题在于,如果我决定使用这个方法的话,那么就像投资一样,是要投入时间.精力,甚至金钱.如果在我根本不能确定我的这个选择究竟能给我带来怎样的结果的情况下,我就投入时间.精力和金钱,那我不就是连傻瓜都不如了么?所以,你必

网络编程——我看的很认真的喔,要用于实践

Java最大的特性是跨平台性,它的优势在于网络编程 下面这个例子: 这样下载的就是一个简单的网页,而没有其他的,比如说图片资源.如果想要下载整个网站,就要进一步编写代码,在下载好之后的页面分析里面的图片资源和一些超链,如果含有的话就继续下载,类似于网络爬虫.这样就可以把整个网站给爬出来了.不过这里面还要注意搜索的超链一般是两到三层,不要太多,这个可以自己设定.  其中说明了一些网站去爬别的网站的商品价格,就比如说,一家书店网站,同时监控京东上面的书的价格,只要京东上面调节了价格,这个网站同时也同