文档详情

《C#高级编程(中文第六版)》.pdf

发布:2015-11-01约128.73万字共页下载文档
文本预览下载声明
C#高级编程(第6 版) 1 第1 章 .NET 体系结构 我们不能孤立地使用C#语言,而必须和.NET Framework 一起考虑。C#编译器专门用于.NET,这 表示用C#编写的所有代码总是在.NET Framework 中运行。对于C#语言来说,可以得出两个重要的结 论: (1) C#的结构和方法论反映了.NET 基础方法论。 (2) 在许多情况下,C# 的特定语言功能取决于.NET 的功能,或依赖于.NET 基类。 由于这种依赖性,在开始使用C#编程前,了解.NET 的结构和方法论就非常重要了,这就是本章 的目的。下面是本章的内容: ● 本章首先了解在.NET 编译和运行所有的代码(包括C#)时通常会出现什么情况。 ● 对这些内容进行概述之后,就要详细阐述Microsoft 中间语言(Microsoft Intermediate Language,MSIL 或简称为IL),.NET 上所有编译好的代码都要使用这种语言。本章特别 要介绍IL、通用类型系统(Common Type System ,CTS)及公共语言规范(Common Language Specification, CLS)如何提供.NET 语言之间的互操作性。最后解释各种语言如何使用.NET,包括Visual Basic 和C++ 。 ● 之后,我们将介绍.NET 的其他特性,包括程序集、命名空间和.NET 基类。 ● 最后本章简要探讨一下C#开发人员可以创建的应用程序类型。 1.1 C#与.NET 的关系 C#是一种相当新的编程语言,C#的重要性体现在以下两个方面: ● 它是专门为与Microsoft 的.NET Framework 一起使用而设计的。(.NET Framework 是一个功能 非常丰富的平台,可开发、部署和执行分布式应用程序) 。 ● 它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft 还吸取了其他类似语言 的经验,这些语言是近20 年来面向对象规则得到广泛应用后才开发出来的。 有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,尽管它是用于生成面向.NET 环 境的代码,但它本身不是.NET 的一部分。.NET 支持的一些特性,C#并不支持。而C#语言支持的另 一些特性,.NET 却不支持(例如运算符重载) ! 但是,因为 C#语言是和.NET 一起使用的,所以如果要使用 C#高效地开发应用程序,理解 Framework 就非常重要,所以本章将介绍.NET 的内涵。 1.2 公共语言运行库 .NET Framework 的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET 运行库。通 常将在CLR 的控制下运行的代码称为托管代码(managed code) 。 但是,在CLR 执行编写好的源代码之前,需要编译它们(在C# 中或其他语言中) 。在.NET 中,编 译分为两个阶段: (1) 把源代码编译为Microsoft 中间语言(IL) 。 (2) CLR 把IL 编译为平台专用的代码。 这个两阶段的编译过程非常重要,因为Microsoft 中间语言(托管代码)是提供.NET 的许多优点的 关键。 Microsoft 中间语言与Java 字节代码共享一种理念:它们都是低级语言,语法很简单(使用数字代 码,而不是文本代码) ,可以非常快速地转换为内部机器码。对于代码来说,这种精心设计的通用语 法有很重要的优点:平台无关性、提高性能和语言的互操作性。 2 1.2.1 平台无关性 首先,这意味着包含字节代码指令的同一文件可以放在任一平台中,运行时编译过程的最后阶段 可以很容易完成,这样代码就可以运行在特定的平台上。换言之,编译为中间语言就可以获得.NET 平台无关性,这与编译为Java 字节代码就会得到Java 平台无关性是一样的。 注意.NET 的平台无关性目前只是一种可能,因为在编写本书时,.NET 只能用于Windows 平台, 但人们正在积极准备,使它可以用于
显示全部
相似文档