经典第01章(C#教程).docx
《经典第01章(C#教程).docx》由会员分享,可在线阅读,更多相关《经典第01章(C#教程).docx(21页珍藏版)》请在第一文库网上搜索。
1、第1章.NET体系构造我们不能孤立地使用C#语言,而必须和.NET Framework 一起考虑。C#编译器专门用于.NET,这表示用C#编写的所有代码总是在.NET Framework中运行。对于C#语言来说,可以得出两个重要的结论: C#的构造和方法论反映了.NET根底方法论。在许多情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET基类。由于这种依赖性,在开场使用C#编程前,了解.NET的构造和方法论就非常重要了,这就是本章的目的。本章首先介绍.NET如何处理所有的代码(包括C#), 了解在.NET编译和运行代码时通常会出现什么情况。对这些内容进展概述之后,就要详细阐述Mic
2、rosoft中间语言(MicrosoftIntermediate Language, MSIL或简称为IL),所有编译好的代码都要使用这种语言。本章特别要介绍IL、通用类型系统(Common Type System, CTS)及公共语言标准(Common LanguageSpecification, CLS)如何提供语言之间的互操作性。最后解释各种语言如何使用.NET,包括VB和 C+。之后,我们将介绍.NET的其他特性,包括程序集、命名空间和.NET基类。最后本章简要探讨一下C#开发人员可以创立的应用程序类型。1.1 C#与.NET的关系c#是一种相当新的编程语言,c#的重要性表达在以下两个
3、方面:它是专门为与Microsoft的.NET Framework 一起使用而设计的。它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft还吸取了其他类似语言的经历,这些语言是近20年来面向对象规那么得到广泛应用后才开发出来的。有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一局部。.NET支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.NET却不支持(例如运算符重载)!但是,因为C#语言是和.NET一起使用的,所以如果要使用C#高效地开发应用程序,理解Framework就非常重要,所以本章将
4、介绍.NET的内涵。1.2 公共语言运行库.NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。在CLR的控制下运行的代码常常称为托管代码(managed code)。但是,在CLR执行开发的源代码之前,需要编译它们(在C#中或其他语言中)。在.NET中,编译分为两个阶段:(1)把源代码编译为Microsoft中间语言(IL)。(2) CLR把IL编译为平台专用的代码。这个两阶段的编译过程非常重要,因为Microsoft中间语言(托管代码)是提供.NET的许多优点的关键。下面看看其原因。托管代码的优点Microsoft中间语言与Java字节代码共
5、享一种理念:它们都是一种低级语言,语法很简单(使用数字代码,而不是文本代码),可以非常快速地转换为内部机器码。对于代码来说,这种精心设计的通用语法,有很重要的优点。1 .平台无关性首先,这意味着包含字节代码指令的同一文件可以放在任一平台中,运行时编译过程的最后阶段可以很容易完成,这样代码就可以运行在该特定的平台上。换言之,编译为中间语言就可以获得.NET平台无关性,这与编译为Java字节代码就会得到Java平台无关性是一样的。注意.NET的平台无关性目前只是一种可能,因为在编写本书时,.NET只能用于Windows平台,但人们正在积极准备,使它可以用于其他平台(参见Mon。工程,它用于创立.N
6、ET的开放源代码的实现,参见 : go-mono /)o2 .提高性能实际上,IL比Java字节代码的作用还要大。IL总是即时编译的(称为JIT编译),而Java字节代码常常是解释性的,Java的一个缺点是,在运行应用程序时,把Java字节代码转换为内部可执行代码的过程会导致性能的损失(但在最近,Java在某些平台上能进展JIT编译)。JIT编译器并不是把整个应用程序一次编译完(这样会有很长的启动时间),而是只编译它调用的那局部代码(这是其名称由来)。代码编译过一次后,得到的内部可执行代码就存储起来,直到退出该应用程序为止,这样在下次运行这局部代码时,就不需要重新编译了。Microsoft认为
7、这个过程要比一开场就编译整个应用程序代码的效率高得多,因为任何应用程序的大局部代码实际上并不是在每次运行过程中都执行。使用JIT编译器,从来都不会编译这种代码。这解释了为什么托管IL代码的执行几乎和内部机器代码的执行速度一样快,但是并没有说明为什么Microsoft认为这会提高性能。其原因是编译过程的最后一局部是在运行时进展的,JIT编译器确切地知道程序运行在什么类型的处理器上,利用该处理器提供的任何特性或特定的机器代码指令来优化最后的可执行代码。传统的编译器会优化代码,但它们的优化过程是独立于代码所运行的特定处理器的。这是因为传统的编译器是在发布软件之前编译为内部机器可执行的代码。即编译器不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 01 C# 教程 doc
