随笔分类 -  01 [你必须知道的.NET]

摘要:软件世界,纷扰事多秋。 Ada、Fortune似乎已是回忆, 曾经Delphi一出,立时风靡左右, 如今Java亦风流, 更有Ruby,Python争宠, 豪门C++,半壁雄霸,经久不息。 且看历史风云, 无论硝烟四起, 独爱,钟情, 风景这边, 唯有.NET, 宽阔如天,深邃如海。 你必须知道的.NET, 开篇数月,历时数回, 还在继续摸索, 只为求得真经。 不知多少继续, 无论何时再来, 博客园内尽英雄。 阅读全文
posted @ 2007-09-14 13:30 Anytao 阅读(70047) 评论(52) 推荐(27) 编辑
摘要:关于继承,你是否驾熟就轻,关于继承,你是否了如指掌。 本文不讨论继承的基本概念,我们回归本质,从编译器运行的角度来揭示.NET继承中的运行本源,来发现子类对象是如何实现了对父类成员与方法的继承,以最为简陋的示例来揭示继承的实质,阐述继承机制是如何被执行的,这对于更好的理解继承,是必要且必然的。 在.NET中,如果创建一个类,则该类总是在继承。这缘于.NET的面向对象特性,所有的类型都最终继承自共同的根System.Object类。可见,继承是.NET运行机制的基础技术之一,一切皆为对象,一切皆于继承。本文从基础出发,深入本质探索本源,分析疑难比较鉴别。对于什么是继承这个话题,希望每个人能从中寻求自己的答案,理解继承、关注封装、玩转多态是理解面向对象的起点,希望本文是这一旅程的起点。 阅读全文
posted @ 2007-09-10 21:43 Anytao 阅读(19064) 评论(110) 推荐(6) 编辑
摘要:自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予我巨大的鼓励和动力。俱往昔,我发现很多的园友都把目光和焦点注意在如何理解IL代码这个问题上。对我来说,这真是个莫大的好消息,因为很明显我们的思路慢慢的从应用向底层发生着转变,技巧性的东西是一个方面的积累,底层的探索在我认为也是必不可少的修炼。如果我们选择了来关注这项修炼,那么我们就应该选择如何来着手这项修炼。 本文从几个重点的IL指令开始,力求通过对比性的分析和深入来逐步揭开IL的神秘与迷惑,正如我们在开始强调的那样,本文只是个开始也许也是个阶段,对IL的探求正如我自己的脚步一样,也在继续着,为的是在.NET的技术世界能够有更多的领悟。作者期望通过不断的努力逐渐和大家一起从IL世界探求.NET世界,在以后的讨论中我们间或的继续这个主题的不断成长。 阅读全文
posted @ 2007-08-22 09:21 Anytao 阅读(14746) 评论(23) 推荐(0) 编辑
摘要:1988年Brian W. Kernighan和Dennis M. Ritchie合著了软件史上的经典巨著《The C programming Language》,我推荐所有的程序人都有机会重温这本历史上的经典之作。从那时起,Hello, world示例就作为了几乎所有实践型程序设计书籍的开篇代码,一直延续至今,除了表达对巨人与历史的尊重,本文也以Hello, world示例作为我们扣开IL语言的起点,开始我们循序渐进的IL认识之旅。 通过一站式的扫描HelloWorld的IL编码,我们还不足以从全局来了解IL,不过第一次的亲密接触至少让我们太陌生,而且随着系列文章的深入我们将逐渐建立起这种认知,从而提高我们掌握了解.NET底层的有效工具。 阅读全文
posted @ 2007-07-22 22:11 Anytao 阅读(14341) 评论(25) 推荐(3) 编辑
摘要:完成了对值类型与引用类型的论述,在这些知识积累的基础上,本文期望通过深入的论述来进一步的分享参数传递的艺术,解开层层疑惑的面纱。从探讨问题的角度来说,参数传递的种种误区其实根植与对值类型和引用类型的本质理解上,因此完成了对类型问题的探讨再进入参数传递的迷宫,我们才会更加游刃有余。我想,这种探讨问题的方式,也正是我们追逐问题的方式,深入进入.NET的高级殿堂是绕不开这一选择的。 阅读全文
posted @ 2007-07-06 16:12 Anytao 阅读(11089) 评论(42) 推荐(1) 编辑
摘要:完成了对值类型与引用类型的论述,在这些知识积累的基础上,本文期望通过深入的论述来进一步的分享参数传递的艺术,解开层层疑惑的面纱。从探讨问题的角度来说,参数传递的种种误区其实根植与对值类型和引用类型的本质理解上,因此完成了对类型问题的探讨再进入参数传递的迷宫,我们才会更加游刃有余。我想,这种探讨问题的方式,也正是我们追逐问题的方式,深入进入.NET的高级殿堂是绕不开这一选择的。 阅读全文
posted @ 2007-07-06 16:06 Anytao 阅读(13432) 评论(16) 推荐(1) 编辑
摘要: 本文将值类型和引用类型的讨论从应用示例角度来进一步做以延伸,可以看作是对前两回的补充性探讨。我们从类型定义、实例创建、参数传递、类型判等、垃圾回收等几个方面来简要的对上两回的内容做以剖析,并以一定的IL语言和内存机制来说明,期望进一步加深我们的理解和分析。 这些示例主要从从基础的方向入手来剖析前前两回中的探讨,不求能够全面而深邃,但求能够一点而及面的展开,技术的魅力正在于千变万化,技术追求者的力求却是从变化中寻求不变,不然我们实质太累了,我想这就是好方法,本系列希望的就是提供一个入口,打开一个方法。 品味类型,为应用之路开辟技术基础。 品味类型,继续探讨还会更多精彩。 阅读全文
posted @ 2007-06-18 22:36 Anytao 阅读(11561) 评论(30) 推荐(1) 编辑
摘要:现在,我们从几个角度延伸了上回对值类型和引用类型的分析,正如本文开头所言,对类型的把握还有很多可以挖掘的要点,但是以偏求全的办法我认为还是可取的,尤其是在技术探求的过程中,力求面面俱到的做法并不是好事。以上的几个角度,我认为是对值类型和引用类型把握的必经之路,否则在实际的系统开发中常常会在细小的地方栽跟头,摸不着头脑。 品味类型,我们以应用为要点撬开值类型和引用类型的规矩与方圆。 品味类型,我们将以示例为导航,开动一个层面的深入分析,下回《第十回:品味类型---值类型与引用类型(下)-应用征途》我们再见。 阅读全文
posted @ 2007-05-28 23:13 Anytao 阅读(17527) 评论(58) 推荐(2) 编辑
摘要:值类型和引用类型,是内功修炼的不二法门。我们从内存分配的角度来深入的理解这一.NET基础话题,有助于我们在系统设计时,提高对性能和类型的把握。本文,希望能从较为全面的角度把这个问题尽量的交待清楚,为其他基础知识的学习打好坚实的基础。我认为,任何有志于在.NET之路上昂首阔步的园友,关注这个话题,研读本篇细节,是个不错的明智之选。 品味类型,怎能少了值类型和引用类型的浓墨重彩。 品味类型,怎能离开内存机制而空谈应用。 本回为值类型和引用类型讨论的上篇,下篇将着重于其应用,敬请期待。 阅读全文
posted @ 2007-05-23 01:01 Anytao 阅读(29120) 评论(92) 推荐(8) 编辑
摘要: 类型的话题,是个老掉牙的囫囵觉,但也是个永不言退的革命党。在实际的程序设计中,我们经常要吃这一亏。因为,很多异常的产生,很多性能的损耗,很多冗余的设计都和类型解下不解之缘,所以清晰、清楚的了解类型,没有什么不可以。重要的是,我们以什么角度来了解和化解,内功的修炼还是要从内力开始。本系列不求包罗万象,但求以更新鲜、更全面的角度,清楚、干净、深入的把某个问题说透,此足尹。 在作者看来想要深入的了解.NET,必须首先从了解类型开始,因为CRL技术就是基于类型而展开的。而了解类型则有必要把焦点放在.NET类型体系的公共基础架构上,这就是:通用类型系统(Common Type System, CTS)。 品味类型,就从CTS开始了。 阅读全文
posted @ 2007-05-11 00:13 Anytao 阅读(16650) 评论(28) 推荐(4) 编辑
摘要:new关键字引起了大家的不少关注,尤其感谢Anders Liu的补充,让我感觉博客园赋予的交流平台真的无所不在。所以,我们就有必要继续这个话题,把我认为最值得关注的关键字开展下去,本文的重点是访问关键字(Access Keywords):base和this。虽然访问关键字不是很难理解的话题,我们还是有可以深入讨论的地方来理清思路。还是老办法,我的问题先列出来,您是否做好了准备。 1 是否可以在静态方法中使用base和this,为什么? 2 base常用于哪些方面?this常用于哪些方面? 3 可以base访问基类的一切成员吗? 4 如果有三层或者更多继承,那么最下级派生类的base指向那一层呢?例如.NET体系中,如果以base访问,则应该是直接父类实例呢,还是最高层类实例呢? 5 以base和this应用于构造函数时,继承类对象实例化的执行顺序如何? 阅读全文
posted @ 2007-05-04 00:31 Anytao 阅读(19092) 评论(63) 推荐(4) 编辑
摘要:园子里好像没有或者很少把new关键字拿出来说的,那我就占个先机吧,呵呵。那么,我们到底有必要将一个关键字拿出来长篇大论吗?看来是个问题。回答的关键是:你真的理解了new吗?如果是,那请不要浪费时间,如果不是,那请继续本文的循序之旅。 下面几个 问题可以大概的考察你对new的掌握,开篇之前,希望大家做个检验,如果通过了,直接关掉本页即可。如果没有通过,希望本文的阐述能帮你找出答案。 1. new一个class对象和new一个struct或者enum有什么不同? 2. new在.NET中有几个用途,除了创建对象实例,还能做什么? 3. new运算符,可以重载吗? 4. 范型中,new有什么作用? 5. new一个继承下来的方法和override一个继承方法有何区别? 6. int i和int i = new int()有什么不同? 请交出你的成绩单??? 阅读全文
posted @ 2007-04-28 23:38 Anytao 阅读(27523) 评论(91) 推荐(5) 编辑
摘要:对基本概念的把握,是我们进行技术深入探索的必经之路,本系列的主旨也是能够从基本框架中,提供给大家一个通向高级技术的必修课程。本文关于class和struct的讨论就是如此,在.NET框架中,关于class和struct的讨论将涉及到对引用类型和值类型的认识,并且进一步将触角伸向变量内存分配这一高级主题,所以我们有必要来了解其运行机制,把握区别和应用场合,以便在平常的系统设计中把握好对这一概念层次的把握。 阅读全文
posted @ 2007-04-24 00:23 Anytao 阅读(22986) 评论(64) 推荐(4) 编辑
摘要: 博客园中,关于attribute的讨论不是很多,所以本文也有了存在的意义。attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容,走进一个发现attribute登堂入室的入口。因为.NET Framework中使用了大量的定制特性来完成代码约定,[Serializable]、[Flags]、[DllImport]、[AttributeUsage]这些的构造,相信我们都见过吧,那么你是否了解其背后的技术。 同时,关于attribute和property的讨论,也做了必要的解释,希望能从全盘的角度来体验attribute的点点滴滴。 阅读全文
posted @ 2007-04-19 01:53 Anytao 阅读(25890) 评论(65) 推荐(7) 编辑
摘要:接口和抽象类,是论坛上、课堂间讨论最多的话题之一,之所以将这个老话题拿出来再议,是因为从我的体会来说,深刻的理解这两个面向对象的基本内容,对于盘活面向对象的抽象化编程思想至关重要。本文基本概况了接口和抽象类的概念、异同和使用规则,从学习的观点来看,我认为这些总结已经足以表达其核心。但是,对于面向对象和软件设计的深入理解,还是建立在不断实践的基础上,Scott说自己每天坚持一个小时用来写Demo,那么我们是不是更应该勤于键盘呢。对于接口和抽象类,请多用而知其然,多想而知其奥吧。 阅读全文
posted @ 2007-04-12 14:33 Anytao 阅读(51731) 评论(216) 推荐(22) 编辑
摘要:类型转换的安全性,讨论是程序设计的要点,从is/as操作符的引入中,体会类型转型的一二三四。。。 阅读全文
posted @ 2007-04-07 16:57 Anytao 阅读(46545) 评论(106) 推荐(11) 编辑
摘要:本篇只是个开篇,真正有意的是每个讨论的细则,都将是我专注的细节。我想博客园关注的要点之一也是技术的共享,因此将该篇暂留首页,希望Dudu暂留,以后的系列内容我将专注完成。 阅读全文
posted @ 2007-04-06 20:12 Anytao 阅读(50703) 评论(77) 推荐(23) 编辑