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

摘要:晚上翻着群里的聊天,发现一个有趣的问题:如何通过编码方式来判断一个dll或者exe为debug build还是release build?由于没有太多的讨论,所以我只好自己找点儿办法,试图解决这个问题,为夜生活带点刺激。于是,便有了本文的探索和分析。 我们应用Visual Studio对代码文件进行F5操作(Build)时,实际是发生了一系列语法检查、词法检查和编译过程,通常情况下我们有两种Build模式,这就是常说的Debug Build和Release Build。望文知意,Debug Build模式通常应用于开发时,便于调试反馈;而Release Build则应用于部署时,这是因为Release模式下,编译器做了很多的优化操作(代码冗余、循环优化等),省去了对调试信息的记录。 阅读全文
posted @ 2009-12-29 18:46 Anytao 阅读(14554) 评论(29) 推荐(5) 编辑
摘要:在.NET世界了,object是公认的造物主,其麾下的7大成员,个顶个的横行在任何系统的任何代码角落。 关于object的故事,有很多很多。而今天的故事则着眼于“为熟悉的朋友做点儿不熟悉的事儿”。相信吗?我的Object成员不见了,不信你可以欣赏一下消失了的object成员。 那么这一切是如何做到的呢?虽然我是一个诚实的人,但是其实这是一次赤裸裸的欺骗,而行骗的家伙就是将要闪亮登场。 阅读全文
posted @ 2009-10-30 00:47 Anytao 阅读(9150) 评论(66) 推荐(12) 编辑
摘要:对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技术发展的方向,也代表了广大程序开发者的集体智慧。以new的方式创建,通过工厂方法,利用IoC容器,都以不同的方式实现了活生生实例成员的创生。而本文所关注的Lazy也是干这事儿的。不过,简单说来,Lazy要实现的就是按“需”创建,而不是按时创建。 我们往往有这样的情景,一个关联对象的创建需要较大的开销,为了避免在每次运行时创建这种家伙,有一种聪明的办法叫做实现“懒对象”,或者延迟加载。.NET 4.0之前,实现懒对象的机制,需要开发者自己来实现与管理,例如,你可以翻开老赵同志的较为理想的延迟代理的编写方式一文来了解其原理和场合。可喜的是,在.NET 4.0中包含的另一个好玩的家伙System.Lazy。 阅读全文
posted @ 2009-10-29 00:51 Anytao 阅读(12437) 评论(42) 推荐(11) 编辑
摘要:Tuple,是函数式编程的概念之一,早见于Elang、F#等动态语言。不过,我第一次听说Tuple还早在2005年园子的Ninputer大牛提出在.NET 2.0实现Tuple的基本想法。 作为.NET 4.0 BCL的一部分,本文晓以一二要点,对Tuple进行一翻分析,以期对这个新成员表示欢迎。 阅读全文
posted @ 2009-06-01 00:05 Anytao 阅读(14241) 评论(55) 推荐(13) 编辑
摘要:.NET 4.0来了,在这个夏天。在蚊子和啤酒相伴的深夜,我将继续[你必须知道的.NET] 系列的完善,将自己对于.NET 4.0新特性的探索形成[深入.NET 4.0]这样一个子系列。同样是一如既往的将角度把握在语言和平台本质的探索,可能的角度上,最佳实践式的应用和国外最新论调的共享同样是这一新生力量关注的话题。好戏才刚开始,我们继续在路上。 总体来说,这是一篇介绍性的文章,不会涉及过多技术细节和研究过程。但是,作为拉开序幕的第一页,本文以提纲挈领的方式展开对.NET 4.0的初次体验。从What’s new的角度,开始我对.NET 4.0新特性的探索之旅。既然是介绍,那么首先给出导航式的链接是必要而必须的,因为一篇小小的篇幅却是难以交代全面What’s new in details,所以看官尽情各取所需吧。 阅读全文
posted @ 2009-05-22 00:36 Anytao 阅读(11942) 评论(80) 推荐(0) 编辑
摘要:语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛、博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向。 本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番。 在下篇,我们将从历史走来,对.NET的未来做个展望性的了解,具体而言就是.NET 4.0的新东西。 阅读全文
posted @ 2009-05-11 01:51 Anytao 阅读(10436) 评论(52) 推荐(0) 编辑
摘要:语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛、博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向。 本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番。 在上篇,我们走在历史,对.NET的过去尤其是c#语言做以回顾,具体而言就是.NET 1.0、2.0、3.0的一路走来。 阅读全文
posted @ 2009-05-08 00:15 Anytao 阅读(11251) 评论(82) 推荐(0) 编辑
摘要:老赵在谈表达式树的缓存(2):由表达式树生成字符串中提到,在描述Type信息时讨论FullName或者AssemblyQualifiedName提供完整的Type信息,虽是小话题,但却是值得有聊的话题。在.NET中反应一个Type名称信息的有以下三个属性,分别是: Name,获取当前成员的名称。 FullName,获取Type 的完全限定名,包括Type的命名空间,但不包括程序集。 AssemblyQualifiedName,获取Type的程序集限定名,其中包括从中加载Type 的程序集的名称。事实上,AssemblyQualifiedName被定义为只读abstract属性,具体的实现由其派生类来实现,例如TypeBuilder,我们可以根据其具体实现类型对此有个大致的了解。 此处的定义毋庸置疑是官方的(MSDN),俗话说,事实是检验真理的唯一标准,那么这三个相近的概念,究竟代表了怎样的不同,我们回到事实近看分晓。 阅读全文
posted @ 2009-03-18 00:06 Anytao 阅读(6623) 评论(22) 推荐(0) 编辑
摘要:在.NET世界里,我们常常听到的一句话莫过于“System.Object是一切类型的根,是所有类型的父类”,以至于我在《你必须知道的.NET》8.1节 以“万物归宗:System.Object”这样的title为System.Object授予至高荣誉。所以,基于这样的观点就有了下面这句“接口是否也继承于System.Object?”,事实上这正是今天在技术群里小小讨论的一个插曲。 interface,想说爱你不容易呀。 阅读全文
posted @ 2009-03-05 02:08 Anytao 阅读(9542) 评论(81) 推荐(2) 编辑
摘要:Metadata描述了静态的结构,而IL阐释了动态的执行,这一静一动承载了太多的技术奥秘。 终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为只有充分的认知才有足够的体会,技术也是如此。那么,我们就开始沿着方法调用的轨迹,追随元数据和IL在那个神秘瞬间所贡献的力量吧。 阅读全文
posted @ 2009-03-04 00:45 Anytao 阅读(5768) 评论(30) 推荐(1) 编辑
摘要:很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有《第一回:恩怨情仇:is和as》那么迅速,但是Metadata和IL却是绝对重量级的内容,值得我们在任何时间关注,本文就是开始。 书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件、程序集、托管模块,这些概念与元数据、IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了解什么是元数据,什么是IL这个话题了,我们继续。 阅读全文
posted @ 2009-02-25 00:54 Anytao 阅读(6798) 评论(17) 推荐(1) 编辑
摘要:你可曾想到,我们的C#代码,编译之后究竟为何物?你可曾认知,我们的可执行程序,运行之时的轨迹究竟为哪般?那么,本文通过对Metadata(元数据)和IL(Intermediate Language, 中间语言)的认识开始,来逐步给出答案。在这个探索轨迹上,元数据、IL、程序集、程序域、JIT、虚分派、方法表和托管堆这些形形色色的神秘嘉宾将在某个时刻不期而遇,作为你必须知道的.NET 系列2.0版本的一部分,本文首先从认识元数据和IL这两位重量级选手开始,而其他的嘉宾也将很快登场。 阅读全文
posted @ 2009-02-24 00:42 Anytao 阅读(8723) 评论(36) 推荐(0) 编辑
摘要: 今天Artech兄在《关于Type Initializer和 BeforeFieldInit的问题,看看大家能否给出正确的解释》一文中让我们认识了一个关于类型构造器调用执行的有趣示例,其中也相应提出了一些关于beforefieldinit对于类型构造器调用时机的探讨,对于我们很好的理解类型构造器给出了一个很好的应用实践体验。 认识类型构造器,认识beforefieldinit,更深入关注CLR执行机理,品 阅读全文
posted @ 2008-11-02 02:53 Anytao 阅读(8050) 评论(57) 推荐(1) 编辑
摘要: 走钢丝的人,在刺激中体验快感。带着问题思考,在问题上迸发火花。或者给问题以答案,或者给答案以问题,你可能永远无法看清全部,但是总能从一点突破很多。事实的关键就在于面对问题,我该如何思考? 带着问题思考,是技术探索的最佳实践, 每当我收到很多朋友来函探讨技术的问题,总能给我很多的技术思索和惊喜,今天我们的话题就是由一个朋友的来函开始的,你可以通过链接打开KiMoGiGi在To 王涛 的问题一文中精彩绝伦的思考 阅读全文
posted @ 2008-08-27 00:06 Anytao 阅读(9518) 评论(53) 推荐(1) 编辑
摘要:null、nullable、??运算符、null object模式,这些闪亮的概念在你眼前晃动,我们有理由相信“存在即合理”,事实上,null不光合理,而且重要。本文,从null的基本认知开始,逐层了解可空类型、??运算符和null object模式,在循序之旅中了解不一样的null。 虽然形色匆匆,但是通过本文你可以基本了解关于null这个话题的方方面面,堆积到一起就是对一个概念清晰的把握和探讨。技术的魅力,大概也正是如此而已吧,色彩斑斓的世界里,即便是“什么都没有”的null,在我看来依然有很多很多。。。值得探索、思考和分享。 你必须知道的.NET,继续全新体验,分享更多色彩。 阅读全文
posted @ 2008-07-31 01:13 Anytao 阅读(15265) 评论(98) 推荐(13) 编辑
摘要: 本文,源自我回答刚毕业朋友关于.NET学习疑惑的回复邮件。 本文,其实早计划在《你必须知道的.NET》写作之初的后记部分,但是因为个中原因未能如愿,算是补上本书的遗憾之一。 本文,作为一个非技术篇章,加塞儿到《你必须知道的.NET》队伍中,我想至少因为回答了以下几个必须知道的非技术问题:.NET应该学习什么? .NET应该如何学习? .NET的学习方法? 阅读全文
posted @ 2008-05-28 01:38 Anytao 阅读(14247) 评论(124) 推荐(0) 编辑
摘要:对象创建过程的了解,是从底层接触CLR运行机制的入口,也是认识.NET自动内存管理的关键。通过本文的详细论述,关于对象的创建、内存分配、初始化过程和方法调用等技术都会建立一个相对全面的理解,同时也清楚的把握了线程栈和托管堆的执行机制。 对象总是有生有灭,本文简述其生,这是个伟大的开始。 本文将分两篇展开,上篇分析线程栈的内存分配,下篇讨论托管堆的内存分配。经过上篇的激烈争论,下篇将会带来什么样的分析、讨论、思考和问题,ing...... [你必须知道的.NET]第19回,今天发布。 阅读全文
posted @ 2007-12-07 08:55 Anytao 阅读(10933) 评论(46) 推荐(0) 编辑
摘要:对象创建过程的了解,是从底层接触CLR运行机制的入口,也是认识.NET自动内存管理的关键。通过本文的详细论述,关于对象的创建、内存分配、初始化过程和方法调用等技术都会建立一个相对全面的理解,同时也清楚的把握了线程栈和托管堆的执行机制。 对象总是有生有灭,本文简述其生,这是个伟大的开始。 本文将分两篇展开,关于托管堆内存分配的讨论,请见下回分析,近期发布。 阅读全文
posted @ 2007-12-03 02:31 Anytao 阅读(13333) 评论(70) 推荐(4) 编辑
摘要:覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之一,两个貌似相似而实则不然的概念,常常带给我们很多的误解,因此有必要以专题来讨论清楚其区别,而更重要的是关注其在多态中的应用。 TechEd2007,不能去了,以此文纪念在技术之路上的里程。祝博客园的朋友们在TechEd有所收获,相聚总有机会。 阅读全文
posted @ 2007-11-07 19:53 Anytao 阅读(10741) 评论(41) 推荐(4) 编辑
摘要:在.NET大家庭中,有不少的关键字承担了多种角色,例如new关键字就身兼数职,除了能够创建对象,在继承体系中隐藏基类成员,还在泛型声明中约束可能用作类型参数的参数,在《把new说透》我们对此都有详细的论述。本文,将把目光转移到另外一个身兼数职的明星关键字,这就是using关键字,在详细讨论using的多重身份的基础上来了解.NET在语言机制上的简便与深邃。 十一了,祝福祖国58岁生日快乐,祝福博客园的朋友们节日快乐。 阅读全文
posted @ 2007-10-01 22:11 Anytao 阅读(11840) 评论(40) 推荐(2) 编辑
摘要:软件世界,纷扰事多秋。 Ada、Fortune似乎已是回忆, 曾经Delphi一出,立时风靡左右, 如今Java亦风流, 更有Ruby,Python争宠, 豪门C++,半壁雄霸,经久不息。 且看历史风云, 无论硝烟四起, 独爱,钟情, 风景这边, 唯有.NET, 宽阔如天,深邃如海。 你必须知道的.NET, 开篇数月,历时数回, 还在继续摸索, 只为求得真经。 不知多少继续, 无论何时再来, 博客园内尽英雄。 阅读全文
posted @ 2007-09-14 13:30 Anytao 阅读(68225) 评论(51) 推荐(27) 编辑
摘要:关于继承,你是否驾熟就轻,关于继承,你是否了如指掌。 本文不讨论继承的基本概念,我们回归本质,从编译器运行的角度来揭示.NET继承中的运行本源,来发现子类对象是如何实现了对父类成员与方法的继承,以最为简陋的示例来揭示继承的实质,阐述继承机制是如何被执行的,这对于更好的理解继承,是必要且必然的。 在.NET中,如果创建一个类,则该类总是在继承。这缘于.NET的面向对象特性,所有的类型都最终继承自共同的根System.Object类。可见,继承是.NET运行机制的基础技术之一,一切皆为对象,一切皆于继承。本文从基础出发,深入本质探索本源,分析疑难比较鉴别。对于什么是继承这个话题,希望每个人能从中寻求自己的答案,理解继承、关注封装、玩转多态是理解面向对象的起点,希望本文是这一旅程的起点。 阅读全文
posted @ 2007-09-10 21:43 Anytao 阅读(17808) 评论(110) 推荐(4) 编辑
摘要:自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予我巨大的鼓励和动力。俱往昔,我发现很多的园友都把目光和焦点注意在如何理解IL代码这个问题上。对我来说,这真是个莫大的好消息,因为很明显我们的思路慢慢的从应用向底层发生着转变,技巧性的东西是一个方面的积累,底层的探索在我认为也是必不可少的修炼。如果我们选择了来关注这项修炼,那么我们就应该选择如何来着手这项修炼。 本文从几个重点的IL指令开始,力求通过对比性的分析和深入来逐步揭开IL的神秘与迷惑,正如我们在开始强调的那样,本文只是个开始也许也是个阶段,对IL的探求正如我自己的脚步一样,也在继续着,为的是在.NET的技术世界能够有更多的领悟。作者期望通过不断的努力逐渐和大家一起从IL世界探求.NET世界,在以后的讨论中我们间或的继续这个主题的不断成长。 阅读全文
posted @ 2007-08-22 09:21 Anytao 阅读(14044) 评论(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 阅读(13803) 评论(25) 推荐(3) 编辑
摘要:完成了对值类型与引用类型的论述,在这些知识积累的基础上,本文期望通过深入的论述来进一步的分享参数传递的艺术,解开层层疑惑的面纱。从探讨问题的角度来说,参数传递的种种误区其实根植与对值类型和引用类型的本质理解上,因此完成了对类型问题的探讨再进入参数传递的迷宫,我们才会更加游刃有余。我想,这种探讨问题的方式,也正是我们追逐问题的方式,深入进入.NET的高级殿堂是绕不开这一选择的。 阅读全文
posted @ 2007-07-06 16:12 Anytao 阅读(10717) 评论(42) 推荐(1) 编辑
摘要:完成了对值类型与引用类型的论述,在这些知识积累的基础上,本文期望通过深入的论述来进一步的分享参数传递的艺术,解开层层疑惑的面纱。从探讨问题的角度来说,参数传递的种种误区其实根植与对值类型和引用类型的本质理解上,因此完成了对类型问题的探讨再进入参数传递的迷宫,我们才会更加游刃有余。我想,这种探讨问题的方式,也正是我们追逐问题的方式,深入进入.NET的高级殿堂是绕不开这一选择的。 阅读全文
posted @ 2007-07-06 16:06 Anytao 阅读(12988) 评论(16) 推荐(1) 编辑
摘要: 本文将值类型和引用类型的讨论从应用示例角度来进一步做以延伸,可以看作是对前两回的补充性探讨。我们从类型定义、实例创建、参数传递、类型判等、垃圾回收等几个方面来简要的对上两回的内容做以剖析,并以一定的IL语言和内存机制来说明,期望进一步加深我们的理解和分析。 这些示例主要从从基础的方向入手来剖析前前两回中的探讨,不求能够全面而深邃,但求能够一点而及面的展开,技术的魅力正在于千变万化,技术追求者的力求却是从变化中寻求不变,不然我们实质太累了,我想这就是好方法,本系列希望的就是提供一个入口,打开一个方法。 品味类型,为应用之路开辟技术基础。 品味类型,继续探讨还会更多精彩。 阅读全文
posted @ 2007-06-18 22:36 Anytao 阅读(11101) 评论(30) 推荐(1) 编辑
摘要:现在,我们从几个角度延伸了上回对值类型和引用类型的分析,正如本文开头所言,对类型的把握还有很多可以挖掘的要点,但是以偏求全的办法我认为还是可取的,尤其是在技术探求的过程中,力求面面俱到的做法并不是好事。以上的几个角度,我认为是对值类型和引用类型把握的必经之路,否则在实际的系统开发中常常会在细小的地方栽跟头,摸不着头脑。 品味类型,我们以应用为要点撬开值类型和引用类型的规矩与方圆。 品味类型,我们将以示例为导航,开动一个层面的深入分析,下回《第十回:品味类型---值类型与引用类型(下)-应用征途》我们再见。 阅读全文
posted @ 2007-05-28 23:13 Anytao 阅读(17019) 评论(58) 推荐(2) 编辑
摘要:值类型和引用类型,是内功修炼的不二法门。我们从内存分配的角度来深入的理解这一.NET基础话题,有助于我们在系统设计时,提高对性能和类型的把握。本文,希望能从较为全面的角度把这个问题尽量的交待清楚,为其他基础知识的学习打好坚实的基础。我认为,任何有志于在.NET之路上昂首阔步的园友,关注这个话题,研读本篇细节,是个不错的明智之选。 品味类型,怎能少了值类型和引用类型的浓墨重彩。 品味类型,怎能离开内存机制而空谈应用。 本回为值类型和引用类型讨论的上篇,下篇将着重于其应用,敬请期待。 阅读全文
posted @ 2007-05-23 01:01 Anytao 阅读(28274) 评论(92) 推荐(7) 编辑
摘要: 类型的话题,是个老掉牙的囫囵觉,但也是个永不言退的革命党。在实际的程序设计中,我们经常要吃这一亏。因为,很多异常的产生,很多性能的损耗,很多冗余的设计都和类型解下不解之缘,所以清晰、清楚的了解类型,没有什么不可以。重要的是,我们以什么角度来了解和化解,内功的修炼还是要从内力开始。本系列不求包罗万象,但求以更新鲜、更全面的角度,清楚、干净、深入的把某个问题说透,此足尹。 在作者看来想要深入的了解.NET,必须首先从了解类型开始,因为CRL技术就是基于类型而展开的。而了解类型则有必要把焦点放在.NET类型体系的公共基础架构上,这就是:通用类型系统(Common Type System, CTS)。 品味类型,就从CTS开始了。 阅读全文
posted @ 2007-05-11 00:13 Anytao 阅读(16081) 评论(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 阅读(18449) 评论(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 阅读(26615) 评论(91) 推荐(5) 编辑
摘要:对基本概念的把握,是我们进行技术深入探索的必经之路,本系列的主旨也是能够从基本框架中,提供给大家一个通向高级技术的必修课程。本文关于class和struct的讨论就是如此,在.NET框架中,关于class和struct的讨论将涉及到对引用类型和值类型的认识,并且进一步将触角伸向变量内存分配这一高级主题,所以我们有必要来了解其运行机制,把握区别和应用场合,以便在平常的系统设计中把握好对这一概念层次的把握。 阅读全文
posted @ 2007-04-24 00:23 Anytao 阅读(22362) 评论(64) 推荐(4) 编辑
摘要: 博客园中,关于attribute的讨论不是很多,所以本文也有了存在的意义。attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容,走进一个发现attribute登堂入室的入口。因为.NET Framework中使用了大量的定制特性来完成代码约定,[Serializable]、[Flags]、[DllImport]、[AttributeUsage]这些的构造,相信我们都见过吧,那么你是否了解其背后的技术。 同时,关于attribute和property的讨论,也做了必要的解释,希望能从全盘的角度来体验attribute的点点滴滴。 阅读全文
posted @ 2007-04-19 01:53 Anytao 阅读(25061) 评论(65) 推荐(7) 编辑
摘要:接口和抽象类,是论坛上、课堂间讨论最多的话题之一,之所以将这个老话题拿出来再议,是因为从我的体会来说,深刻的理解这两个面向对象的基本内容,对于盘活面向对象的抽象化编程思想至关重要。本文基本概况了接口和抽象类的概念、异同和使用规则,从学习的观点来看,我认为这些总结已经足以表达其核心。但是,对于面向对象和软件设计的深入理解,还是建立在不断实践的基础上,Scott说自己每天坚持一个小时用来写Demo,那么我们是不是更应该勤于键盘呢。对于接口和抽象类,请多用而知其然,多想而知其奥吧。 阅读全文
posted @ 2007-04-12 14:33 Anytao 阅读(50478) 评论(218) 推荐(19) 编辑
摘要:类型转换的安全性,讨论是程序设计的要点,从is/as操作符的引入中,体会类型转型的一二三四。。。 阅读全文
posted @ 2007-04-07 16:57 Anytao 阅读(45283) 评论(106) 推荐(11) 编辑
摘要:本篇只是个开篇,真正有意的是每个讨论的细则,都将是我专注的细节。我想博客园关注的要点之一也是技术的共享,因此将该篇暂留首页,希望Dudu暂留,以后的系列内容我将专注完成。 阅读全文
posted @ 2007-04-06 20:12 Anytao 阅读(49281) 评论(77) 推荐(23) 编辑