c#高级编程(权威版)

c#高级编程(权威版)

ID:26409922

大小:7.22 MB

页数:836页

时间:2018-11-26

c#高级编程(权威版)_第1页
c#高级编程(权威版)_第2页
c#高级编程(权威版)_第3页
c#高级编程(权威版)_第4页
c#高级编程(权威版)_第5页
资源描述:

《c#高级编程(权威版)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#交流一群:84010140,诚约高手一起来交流C#高级编程(权威版)C#交流一群:84010140,诚约高手一起来交流第1章.NET体系结构我们不能孤立地使用C#语言,而必须和.NETFramework一起考虑。C#编译器专门用于.NET,这表示用C#编写的所有代码总是在.NETFramework中运行。对于C#语言来说,可以得出两个重要的结论:(1)C#的结构和方法论反映了.NET基础方法论。(2)在许多情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET基类。由于这种依赖性,在开始使用C#编程前,了解.N

2、ET的结构和方法论就非常重要了,这就是本章的目的。下面是本章的内容:● 本章首先了解在.NET编译和运行所有的代码(包括C#)时通常会出现什么情况。● 对这些内容进行概述之后,就要详细阐述Microsoft中间语言(MicrosoftIntermediateLanguage,MSIL或简称为IL),.NET上所有编译好的代码都要使用这种语言。本章特别要介绍IL、通用类型系统(CommonTypeSystem,CTS)及公共语言规范(CommonLanguageSpecification,CLS)如何提供.NET语言之间的互操

3、作性。最后解释各种语言如何使用.NET,包括VisualBasic和C++。● 之后,我们将介绍.NET的其他特性,包括程序集、命名空间和.NET基类。● 最后本章简要探讨一下C#开发人员可以创建的应用程序类型。1.1 C#与.NET的关系C#是一种相当新的编程语言,C#的重要性体现在以下两个方面:● 它是专门为与Microsoft的.NETFramework一起使用而设计的。(.NETFramework是一个功能非常丰富的平台,可开发、部署和执行分布式应用程序)。● 它是一种基于现代面向对象设计方法的语言,在设计它时,Mi

4、crosoft还吸取了其他类似语言的经验,这些语言是近20年来面向对象规则得到广泛应用后才开发出来的。有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.NET却不支持(例如运算符重载)!但是,因为C#语言是和.NET一起使用的,所以如果要使用C#高效地开发应用程序,理解Framework就非常重要,所以本章将介绍.NET的内涵。1.2 公共语言运行库.NETFramework的核心

5、是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。通常将在CLR的控制下运行的代码称为托管代码(managedcode)。但是,在CLR执行编写好的源代码之前,需要编译它们(在C#中或其他语言中)。在.NET中,编译分为两个阶段:(1)把源代码编译为Microsoft中间语言(IL)。(2)CLR把IL编译为平台专用的代码。这个两阶段的编译过程非常重要,因为Microsoft中间语言(托管代码)是提供.NET的许多优点的关键。Microsoft中间语言与Java字节代码共享一种理念:它们都是低级语言,语法很

6、简单(使用数字代码,而不是文本代码),可以非常快速地转换为内部机器码。对于代码来说,这种精心设计的通用语法有很重要的优点:平台无关性、提高性能和语言的互操作性。C#交流一群:84010140,诚约高手一起来交流1.2.1 平台无关性首先,这意味着包含字节代码指令的同一文件可以放在任一平台中,运行时编译过程的最后阶段可以很容易完成,这样代码就可以运行在特定的平台上。换言之,编译为中间语言就可以获得.NET平台无关性,这与编译为Java字节代码就会得到Java平台无关性是一样的。注意.NET的平台无关性目前只是一种可能,因为在编

7、写本书时,.NET只能用于Windows平台,但人们正在积极准备,使它可以用于其他平台(参见Mono项目,它用于实现.NET的开放源代码,参见http://www.go-mono.com/)。1.2.2 提高性能前面把IL和Java做了比较,实际上,IL比Java字节代码的作用还要大。IL总是即时编译的(称为JIT编译),而Java字节代码常常是解释性的,Java的一个缺点是,在运行应用程序时,把Java字节代码转换为内部可执行代码的过程会导致性能的损失(但在最近,Java在某些平台上能进行JIT编译)。JIT编译器并不是把

8、整个应用程序一次编译完(这样会有很长的启动时间),而是只编译它调用的那部分代码(这是其名称由来)。代码编译过一次后,得到的内部可执行代码就存储起来,直到退出该应用程序为止,这样在下次运行这部分代码时,就不需要重新编译了。Microsoft认为这个过程要比一开始就编译整个应用程序代码的效率高

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。