Welcome 微信登录

首页 / 软件开发 / .NET编程技术

[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途

[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途

[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途2011-03-20 博客园 Anytao本文将介绍以下内容:类型的基本概念值类型深入引用类型深入值类型与引用类型的比较及应用1.引言值类型与引用类型的话题经过了两个回合([第八回:品味类型---值类型与引用类型(上)-内存有理]和[第九回:品味类型---值类型与引用类型(中)-规则无边])的讨论和切磋,我们就基本的理解层面来说已经差不多了,但是对这一部分的进一步把握和更深刻的理...
[你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)

[你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)

[你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)2011-03-20 博客园 Anytao本文将介绍以下内容:按值传递与按引用传递深论ref和out比较参数应用浅析1.引言接上回《第九回:品味类型---值类型与引用类型(中)-规则无边》中,对值类型和引用类型的讨论,其中关于string类型的参数传递示例和解释,引起园友的关注和讨论,可谓一石激起千层浪。受教于装配脑袋的深切指正,对这一概念有了相当进一步的了解,事实证明是我错了,在此向朋友们致...
[你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)

[你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)

[你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)2011-03-20 博客园 Anytao本文将介绍以下内容:按值传递与按引用传递深论ref和out比较参数应用浅析接上篇继续,『第十一回:参数之惑---传递的艺术(上)』4.2 引用类型参数的按值传递当传递的参数为引用类型时,传递和操作的是指向对象的引用,这意味着方法操作可以改变原来的对象,但是值得思考的是该引用或者说指针本身还是按值传递的。因此,我们在此必须清楚的了解以下两个最根本的问题:...
[你必须知道的.NET]第十三回:从Hello, world开始认识IL

[你必须知道的.NET]第十三回:从Hello, world开始认识IL

[你必须知道的.NET]第十三回:从Hello, world开始认识IL2011-03-20 博客园 Anytao本文将介绍以下内容:IL代码分析方法Hello, world历史.NET学习方法论1.引言1988年Brian W.Kernighan和Dennis M.Ritchie合著了软件史上的经典巨著《The C programming Language》,我推荐所有的程序人都有机会重温这本历史上的经典之作。从那时起,Hello, world示例就作为...
[你必须知道的.NET]第十四回:认识IL代码---从开始到现在

[你必须知道的.NET]第十四回:认识IL代码---从开始到现在

[你必须知道的.NET]第十四回:认识IL代码---从开始到现在2011-03-20 博客园 Anytao本文将介绍以下内容:·IL代码分析方法·IL命令解析·.NET学习方法论1.引言自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予了anytao巨大的鼓励和动力。俱往昔,我发现很多的园友都把目光和焦点注意在如何理解IL代码这个问题上。对我来说,这真是个莫大的好消息,因为很明显我们的思路慢慢的...
[你必须知道的.NET]第十五回:继承本质论

[你必须知道的.NET]第十五回:继承本质论

[你必须知道的.NET]第十五回:继承本质论2011-03-23 博客园 Anytao本文将介绍以下内容:什么是继承?继承的实现本质1.引言关于继承,你是否驾熟就轻,关于继承,你是否了如指掌。本文不讨论继承的基本概念,我们回归本质,从编译器运行的角度来揭示.NET继承中的运行本源,来发现子类对象是如何实现了对父类成员与方法的继承,以最为简陋的示例来揭示继承的实质,阐述继承机制是如何被执行的,这对于更好的理解继承,是必要且必然的。2.分析下面首先以一个简单的...
[你必须知道的.NET]第十六回:深入浅出关键字---using全接触

[你必须知道的.NET]第十六回:深入浅出关键字---using全接触

[你必须知道的.NET]第十六回:深入浅出关键字---using全接触2011-03-23 博客园 Anytao本文将介绍以下内容:using指令的多种用法using语句在Dispose模式中的应用1.引言在.NET大家庭中,有不少的关键字承担了多种角色,例如new关键字就身兼数职,除了能够创建对象,在继承体系中隐藏基类成员,还在泛型声明中约束可能用作类型参数的参数,在[第五回:深入浅出关键字---把new说透]我们对此都有详细的论述。本文,将把目光转移到...
[你必须知道的.NET]第十七回:貌合神离:覆写和重载

[你必须知道的.NET]第十七回:貌合神离:覆写和重载

[你必须知道的.NET]第十七回:貌合神离:覆写和重载2011-03-23 博客园 Anytao本文将介绍以下内容:什么是覆写,什么是重载覆写与重载的区别覆写与重载在多态特性中的应用1.引言覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之一,两个貌似相似而实则不然的概念,常常带给我们很多的误解,因此有必要以专题来讨论清楚其区别,而更重要的是关注其在多态中的应用。在系列中,我们先后都有关于这一话题的点滴论述,本文...
[你必须知道的.NET]第十八回:对象创建始末(上)

[你必须知道的.NET]第十八回:对象创建始末(上)

[你必须知道的.NET]第十八回:对象创建始末(上)2011-03-23 博客园 Anytao本文将介绍以下内容:对象的创建过程内存分配分析内存布局研究1.引言了解.NET的内存管理机制,首先应该从内存分配开始,也就是对象的创建环节。对象的创建,是个复杂的过程,主要包括内存分配和初始化两个环节。例如,对象的创建过程可以表示为:FileStream fs = new FileStream(@"C:"temp.txt", File...
[你必须知道的.NET]第十九回:对象创建始末(下)

[你必须知道的.NET]第十九回:对象创建始末(下)

[你必须知道的.NET]第十九回:对象创建始末(下)2011-03-23 博客园 Anytao本文将介绍以下内容:对象的创建过程内存分配分析内存布局研究接上回[第十八回:对象创建始末(上)],继续对对象创建话题的讨论>>>2.2 托管堆的内存分配机制引用类型的实例分配于托管堆上,而线程栈却是对象生命周期开始的地方。对32位处理器来说,应用程序完成进程初始化后,CLR将在进程的可用地址空间上分配一块保留的地址空间,它是进程(每个进程可使用4...
[你必须知道的.NET]第二十回:学习方法论

[你必须知道的.NET]第二十回:学习方法论

[你必须知道的.NET]第二十回:学习方法论2011-03-23 博客园 Anytao说在,开篇之前本文,源自我回答刚毕业朋友关于.NET学习疑惑的回复邮件。本文,其实早计划在《你必须知道的.NET》写作之初的后记部分,但是因为个中原因未能如愿,算是补上本书的遗憾之一。本文,作为[《你必须知道的.NET》]系列的第20回,预示着这个系列将开始新的征程,算是[你必须知道的.NET]2.0的开始。本文,作为一个非技术篇章,加塞儿到《你必须知道的.NET》队伍中...
[你必须知道的.NET]第二十一回:认识全面的null

[你必须知道的.NET]第二十一回:认识全面的null

[你必须知道的.NET]第二十一回:认识全面的null2011-03-23 博客园 Anytao1 从什么是null开始?null,一个值得尊敬的数据标识。一般说来,null表示空类型,也就是表示什么都没有,但是“什么都没有”并不意味“什么都不是”。实际上,null是如此的重要,以致于在JavaScript中,Null类型就作为5种基本的原始类型之一,与Undefined、Boolean、Number和Str...
[你必须知道的.NET]第二十二回:字符串驻留(上)---带着问题思考

[你必须知道的.NET]第二十二回:字符串驻留(上)---带着问题思考

[你必须知道的.NET]第二十二回:字符串驻留(上)---带着问题思考2011-03-23 博客园 Anytao走钢丝的人,在刺激中体验快感。带着问题思考,在问题上迸发火花。或者给问题以答案,或者给答案以问题,你可能永远无法看清全部,但是总能从一点突破很多。事实的关键就在于面对问题,我该如何思考?String Interning(字符串驻留)就是这样一个值得思考的话题,带着问题思考,我们至少要理清以下几个问题:什么是string?什么是字符串驻留?字符串驻...
[你必须知道的.NET]第二十三回:品味细节,深入.NET的类型构造器

[你必须知道的.NET]第二十三回:品味细节,深入.NET的类型构造器

[你必须知道的.NET]第二十三回:品味细节,深入.NET的类型构造器2011-03-23 博客园 Anytao1 引言今天Artech兄在《关于Type Initializer和 BeforeFieldInit的问题,看看大家能否给出正确的解释》一文中让我们认识了一个关于类型构造器调用执行的有趣示例,其中也相应提出了一些关于beforefieldinit对于类型构造器调用时机的探讨,对于我们很好的理解类型构造器给出了一个很好的应用实践体验。作为补充,本文...
[你必须知道的.NET]第二十四回:认识元数据和IL(上)

[你必须知道的.NET]第二十四回:认识元数据和IL(上)

[你必须知道的.NET]第二十四回:认识元数据和IL(上)2011-03-23 博客园 Anytao说在,开篇之前很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有《第一回:恩怨情仇:is和as》那么迅速,但是Metadata和IL却是绝对重量级的内容,值得我们在任何时间关注,本文就是开始。1 引言你可曾想到,我们的C#代码,编译之后究竟为何物?你可曾认知,我们的可执行程...
[你必须知道的.NET]第二十五回:认识元数据和IL(中)

[你必须知道的.NET]第二十五回:认识元数据和IL(中)

[你必须知道的.NET]第二十五回:认识元数据和IL(中)2011-03-23 博客园 Anytao书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件、程序集、托管模块,这些概念与元数据、IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了解什么是元数据,什么是IL这个话题了,我们继续。很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投...
[你必须知道的.NET]第二十六回:认识元数据和IL(下)

[你必须知道的.NET]第二十六回:认识元数据和IL(下)

[你必须知道的.NET]第二十六回:认识元数据和IL(下)2011-03-23 博客园 Anytao书接上回:第二十四回:认识元数据和IL(上) , 第二十五回:认识元数据和IL(中)我们继续。终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为只有充分的认知才有足够的体会,技术也是如此。那么,我们就开始沿着方法调用的轨迹,追随元数据和IL在那个神秘瞬间所贡献的力量吧5 元数据和IL在JIT编译时CLR最终执...
[你必须知道的.NET]第二十八回:说说Name这回事儿

[你必须知道的.NET]第二十八回:说说Name这回事儿

[你必须知道的.NET]第二十八回:说说Name这回事儿2011-03-23 博客园 Anytao1 缘起老赵在谈表达式树的缓存(2):由表达式树生成字符串 中提到,在描述Type信息时讨论FullName或者AssemblyQualifiedName提供完整的Type信息,虽是小话题,但却是值得有聊的话题。在.NET中反应一个Type名称信息的有以下三个属性,分别是:Name,获取当前成员的名称。FullName,获取Type 的完全限定名,包括Type...
[你必须知道的.NET]第二十七回:interface到底继承于object吗?

[你必须知道的.NET]第二十七回:interface到底继承于object吗?

[你必须知道的.NET]第二十七回:interface到底继承于object吗?2011-03-23 博客园 Anytao说在,开篇之前在.NET世界里,我们常常听到的一句话莫过于“System.Object是一切类型的根,是所有类型的父类”,以至于我在《你必须知道的.NET》8.1节 以“万物归宗:System.Object”这样的title为System.Object授予至高荣誉。所以,基于这样的观点就有...
[你必须知道的.NET]第二十九回:.NET十年(上)

[你必须知道的.NET]第二十九回:.NET十年(上)

[你必须知道的.NET]第二十九回:.NET十年(上)2011-03-23 博客园 Anytao引言语言是程序开发者行走江湖的手上利器,各大门派的高手在论坛、博客为了自家门派争吵不已早是技术世界中的亮丽风景,虽多少为刚刚踏入江湖的新手提供了思考的素材,但也同时迷惑了初出茅庐的前行方向。本文不欲计较门派的高下,旨在明辨技术的真谛,这就是.NET平台下的开发利器:C#语言,并从其变迁的进程中对于.NET技术发展把玩一番。在上篇,我们走在历史,对.NET的过去尤...
<< 41 42 43 44 45 46 47 48 49 50 >>