当前位置: 首页 > 互联网 > 正文

补习.NET理论知识二

距离上次所写的《补习.NET理论知识一》已经过去有近一个月的时间。一个月时间来,通过每天下班回家,早上上班之前,及周末的时间,仔细阅读了《深入理解C#》。并在单位上班的间隙看了《CLR via C# 3.0》。一个月下来,收获颇多。特别是对《深入理解C#》的学习让我从连续性,连贯性上了解了.NET框架从1.1版本到现在的4.0版本变迁的要点,特性及有关根源。对全面补习.NET理论和掌握新特性的学习起了非常大的作用。收获之余,不禁感叹,之前对理论的学习没有连续性,甚至有些不屑,的确非常的不应该。

记得高中时候,每天晚上都有最后的15分钟用来写学习笔记。我几乎每个晚上都会记录10多行,甚至1页。每次考试后,我会把所有的功课都小结一下,对考试出现的不应该错误都会记录下来。为此,还拿到年级里发的小奖。现在,却没有了这种习惯。一方面,有了电脑之后,很少动笔了,连自己写字的功力也慢慢退化了。另一方面,我不习惯边看纸质书,边在电脑上记录。所以,我也只是在书本上圈圈点点,必要的时候将代码敲到电脑上运行一番。不管怎么说,学习之后总有收获,现记录一些,就当是加深记忆吧。

.NET是强类型编程框架,何谓强类型,就是说在编译的时候,任何的变量的类型,如值类型或引用类型都是可以确定的,称为强类型。不过新.NET框架也开始出了动态类型,与之相对应的是静态类型。静态类型表明,变量一声明,其类型一般不会改变,除非进行显式或隐式的转换。在转换之间可能会牵涉到装箱和拆箱,装箱发生在从值类型向引用类型转换,拆箱发生在从引用类型到值类型转换。我们在写程序的时候,要尽量避免装箱和拆箱操作。强类型的数组操作带来了太多的检查和类型校验,因此.NET2.0出现了泛型类。泛型是.NET框架发展的一重大特性。为程序员减少了大量类型检查代码。泛型类型在编译时就完成了类型校验。统一的泛型接口,泛型迭代,让代码变得更加灵活准确。委托也进行了大跨越式的发展与改变,到匿名方法,再到Lambda表达式,到匿名类,到扩展方法,再到LINQ,一脉相承,紧紧相扣。现在,能用更少的代码处理更多的事情,代码相应也变的简洁明了了。当然,上面所述的比较笼统,还有一些非常有用的特性,比如:可空类型,自动实现属性,集合初始化列表等等。虽然经过这样一总结,似乎点并是不多,但要仔细研究,点还是非常的细的。很多东西,需要反复的琢磨,并不是看一遍书就能完全掌握的,需要不断的揣摩和反复的实践。

理论的东西往往很难具体化。我在阅读计算机书箱的时候,总是习惯在脑中构建一幅图或一幅表格。有的时候,每阅读到一个新的知识点,或一个新的理解时,大脑中的那幅图就会不断的重绘,直到一个自己认为最为准确,最为清晰的印象为止。如果,在书中碰到自己认为前后矛盾的理解时,一定会努力去想是不是自己之前的理解出错了,或是现在理解的不对,想到明白为止。所以,我认为,学理论比看代码难,如果理论理解了,代码也就更容易掌握了。而且,一段代码往往只涉及了的部分的理论。如果要那样,就要不断的看代码,不断的研究代码。要是这样的话,我个人还是认为,先将大部分的理论掌握了,再去研究代码,一定会更加有收获。

对于程序员来说,细节太重要。因为,程序只有对与错两种选择。只有掌握语言的各个细节,才能避免更多的错误,才能对程序进行一定的优化。虽然,写程序过程中,不一定会用到所有的细节,但是细节往往是理解和掌握这门编程语言的关键。因此,在看理论书的时候,有时候会很乏味,会很无趣,除非这个要点你已经掌握,请不要轻易遗漏一个要点。近一个月的学习,《深入理解C#》一书已看了三分之二,《CLR via C#》也看了四分之一吧。接下来,继续阅读它们吧,然后,再抽空点时间学习一下linux系统,谁让我要看的书实在太多了呢。

本文固定链接: http://www.byhard.com/?p=694 | 海纳百川

该日志由 byhard 于2012年08月29日发表在 互联网 分类下,
原创文章转载请注明: 补习.NET理论知识二 | 海纳百川
关键字:
【上一篇】
【下一篇】

补习.NET理论知识二:目前有32 条留言

  1. 18楼
    破碎机:

    每天总结,好处很多,不过一直没有这个习惯

    2012-08-30 09:18
  2. 17楼
    即时比分:

    对于程序员来说,知识更新太快,不断学习很重要啊

    2012-08-30 10:16
  3. 16楼
    标语大全:

    对于程序员来说,细节太重要

    2012-08-30 10:22
  4. 15楼
    市场营销:

    的确,理论很难具体化!

    2012-08-30 10:30
  5. 14楼
    足球直播:

    多看书,多学习!将来有用!

    2012-08-30 10:32
  6. 不懂.net啊

    2012-08-30 10:40
  7. 12楼
    男装:

    现在有了电脑都懒了,懒得去记什么笔记之类的

    2012-08-30 11:12
    • byhard:

      有了电脑之后,开机之后,先玩半小时,再进入正题学习啊。

      2012-08-30 17:00
      • 嗯·~基本都是这样的·~

        2012-08-31 09:07
  8. 11楼
    网络赚钱:

    很好的东西 收藏了

    2012-08-30 11:27
  9. 10楼
    何斌:

    不错啊,还搞一搞。net啊

    2012-08-30 15:44
    • byhard:

      不搞没进步啊,以后没前途啊。

      2012-08-30 17:00
  10. 9楼
    黑白:

    来温习下.NET的知识。

    2012-08-30 18:07
  11. 我觉得看代码比学习理论难

    2012-08-30 21:15
    • byhard:

      哈哈,那是理论没有搞懂,还有就是业务不熟悉,不知道代码功能,当然也比较难读懂啦。

      2012-08-31 08:53
  12. 7楼
    活塞杆:

    真的要好好学习啊,不然就落后拉

    2012-08-30 21:16
    • byhard:

      希望自己哪天脑子突然开窍,知道怎么学,为什么而学。

      2012-08-31 08:55
  13. 现在一个月能有一次总结就不错了。哪有精力去天天总结啊。。。琐碎的事,太多了。不过,总结是个好习惯。每总结一次,就是看清楚自己一次 。

    2012-08-31 14:48
    • byhard:

      我只要知道自己是做的最正确的事情,而不是拿是否有时间来做借口。这也许就是成功与否的差别吧。

      2012-08-31 22:13
  14. 5楼
    微波炉:

    看起来很不错……

    2012-08-31 22:55
    • byhard:

      哪里不错啦?

      2012-09-01 08:35
  15. 编程不懂,C#好像比.NET更难一点吧

    2012-09-01 09:41
    • byhard:

      C#是编程语言,.NET你可以理解成框架或类库,C#是在.NET框架上一种开发语言。你再琢磨下。

      2012-09-01 13:30
  16. 地板
    55海淘:

    你不觉得编程很难吗?程序员是最悲剧的职业了

    2012-09-03 17:00
    • byhard:

      编程是很难,这个是需要挑战的职业,因为你有太多的书籍去阅读。程序员不是终点,只是起点,你懂的。

      2012-09-03 17:05
      • 读书的时候老实说编程行业就是女人当男人用,男人不当人用,呵呵

        2012-09-03 17:06
        • byhard:

          程序员,IT行业有其特殊性,你说的这些情况的确是国内很多软件公司的状况,但往往大多优秀的软件公司,工作环境都是非常不错的,前提是你自己要足够的优秀。我也要努力找到一个好的环境啊。哈。

          2012-09-03 17:08
          • .net学过一点皮毛,跟java相比还是简单很多了

            2012-09-03 17:10
            • byhard:

              嗯,我也这么认为。一方面,.NET的开发IDE比较强,另一方面,Java更加开放,所以新的架构,思想比较活跃。.net有部分内容也是从Java引荐过来的,从部属上讲,Java也更复杂些,个人观点。

              2012-09-03 17:15
  17. 板凳
    飞来飞去:

    编程员,我的先生呀,可怜的孩子

    2012-09-05 17:18
    • byhard:

      有你,他是幸福的。

      2012-09-05 20:19
  18. 不错哟,挺好的。

    2012-09-11 15:30