首页>参考读物>计算机科学与技术>综合

C# 技术内幕
作者 : (美)Joseph Mayo
译者 : 王启丁 高锦文 刘明 等
出版日期 : 2003-01-01
ISBN : 7-111-10288-6
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 536
开本 : 16开
原书名 : C# Unleashed
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

C#是C语言系列中第一个基于组件的程序设计语言。本书全面介绍了C#语言的语法和编程技术以及C#的类库,使读者迅速掌握这个全新的语言。本书不仅介绍了C#本身,还介绍了如何使用C#将软件作为服务来开发。除了讲述必要的语法之外,本书重点介绍了C#的实际应用。本书循序渐进,每一章都是带你一步一步地从C#的核心进入.NET框架的元素,并介绍了分布式多层Internet应用程序开发中用到的一些高级概念。除此之外,它还展示了如何调试、监视和扩展企业级的应用程序,使你能够应用C#的全部功能。本书注意比较了C#与C++和Java语言之间的异同,以便帮助开发人员顺利地过渡到C#。同时,本书也适合一般用户,只要使用过某种计算机语言开发过程序,就能掌握本书的内容。本书内容全面,讲述透彻,是专业开发人员的优秀参考书。

有人可能会问:“如果我已经有使用某种语言编程的经验,能很快掌握C#吗?”当然可以,本书中添加的注意就是用来帮助C++或Java程序员顺利过渡到C#的,但是本书也适合更广泛的用户。不管你以前使用的程序是函数式的、逻辑式的、过程式的或面向对象的,本书都能帮助你快速掌握这个新语言的概念。
本书介绍了C#的全部功能:
*它是关于C#的语法和用C#进行面向对象的编程和组件编程的完整参考。
*它介绍了C#的几个类库。
*本书不仅讲授C#,也教授了怎样使用C#将软件作为服务来开发。
*如果你已经使用过其他的计算机语言开发软件,那么就更能容易地掌握本书的内容。

图书特色

Joseph Mayo是使用C#的先驱。在这个新语言推出不久,他就创建了叫做C#Station 的Web站点。他在该站点上放置的C#教程被全世界的Web开发人员和Web站点广泛地访问。他是一位有着15年丰富开发经验的程序员。他曾经使用过多种语言进行编程,包括汇编 、C、C++、VBA和Forte 4GL。他在数据库方面也有较丰富的经验,他熟悉Paradox、Dbase III、MS Access 和Oracle等数据库。在框架方面,他对MFC和Mootif等都很熟悉。他具有在多种操作系统上进行编程的经验,包括VAX VMS、RSX-11、UNIX和几种版本的MS-DOS和MS-Windows。他已经为桌面系统、局域网上的客户机-服务器环境开发了单独模式下的若干应用程序,并在局域网和广域网上开发了多层应用程序。他目前是Qwest Communications的软件工程师。

图书前言

欢迎你阅读本书。这是一本关于C#(英语发音是see sharp)编程语言的指南和参考书。C#是一种崭新的面向对象的编程语言。它强调以组件为基础的软件开发方法。
基于组件的编程方法几年前就已出现,但C#所提供的功能将使我们达到软件开发的新水平。这是向着XML的Web服务转变的新模式─将软件视为一种服务,这种服务是非连接型的、无状态的,并且符合国际的开放式标准。
把软件作为服务是下一代计算机系统的趋势。例如,C#非常适合于建立Web服务,适合于开发在遵循开放式标准的Internet上可重用的组件。软件开发不再限于过去几年中发展起来的单机结构(monolithic architecture)。Web服务使应用程序能够在Web上使用分布式的服务,这就大大简化了软件开发,并提升了软件重用的规模。C#是在Web服务领域的主角,它有力地促进了软件作为服务这一大潮。
本书不仅介绍C#本身,而且展示了如何用C#开发作为服务的软件。纵观软件的发展,我们非常幸运地及时到达了这个转折点。多少年来,程序都是作为目的单一的单机应用程序来编写的。通过研究和经验,我们已经认识到模块化的好处,这就逐渐发展出面向对象方法。它为我们提供了大规模重用的可能性和可维护性。当协作和通信变成了商业的需求时,就自然地发展出了客户端/服务器和连网技术。Internet和Web为我们提供了分布式的、无状态的和安全的软件技术,包括Applet等等。下一步将是C#的用武之地—使Internet自动化。
这本书为什么适合你
如果曾经使用过其他计算机编程语言开发软件,你肯定能够理解本书中的概念。有编程经验的读者肯定懂得怎样编写进行逻辑选择和循环控制的代码,当然也会了解变量和十六进制之类的基本数字系统了。老实说,有雄心的初学者如果努力也能够很好地掌握这本书的内容。
历经了几年的软件开发之后,在编写这本书时我又多次回想起一些往事。我常常自问:“如果过去的两年我都用COBOL编程来解决千年虫的问题,看这本书会怎么样呢?”或者“假如我是PROLOG程序员,在进行了多年的科学研究之后又会怎么样呢?”“使用X语言的人能了解某些解释或例子吗?”当这些回答是肯定时,我感到充满信心,我已经十分认真地考虑了各种读者的情况。
本书是为每个程序员编写的。虽然它针对两个较大的潜在的读者群─C++和Java程序员有专门的提示,但是它也考虑了所有程序员的需求。它所讲述的是很基本的东西,使你能够了解C#的每个方面知识。同时,它也充分地研究了你每天需要处理的现代企业级的任务。通过本书的学习,我希望你有一个感觉,那就是现在你的背包里已经有了极好的开发Web服务和分布式解决方案的新工具,而开发Web服务和分布式解决方案将是我们无法回避的主要工作。
组织和目标
本书中的全部内容都是关于用C#编程语言编写代码的问题。许多高级主题内容本身就足够写一本书了。但是,本书的重点并不是讲解这些高级主题的细节,虽然本书对其中的一些领域也有一定深度的介绍。每一章的目的都是展示怎样用C#来完成给定的任务。即使是最理论化的章节,其重点仍然是如何将每个主题应用于使用C#来编写代码。
本书共分为六个部分。从比较简单的材料和与C#语言直接有关的内容开始。随后,介绍与C#相关的领域,并展示如何使用库。之后,才介绍更多高级的主题,并展示怎样使用C#为各种技术开发代码。
第一部分  C#的基础知识
第一部分提供了C#语言语法中最基本的元素。从介绍C#操作的环境开始,然后展示怎样创建两个简单的C#程序。它介绍了各种不同的C#类型以及怎样使用它们来创建表达式和语句。接着讲解用分支和迭代来控制程序流的问题。在介绍了足够的材料使读者能够了解相对复杂的程序之后,再介绍怎样调试C#程序。
第1章  C#并不是在程序直接编译成机器码的典型环境中操作。它是在管理代码运行的虚拟执行系统中运行。这个环境之所以能按其运行方式运作,需要用到一些特殊技术。C#已经作为开放标准提交给标准化组织了。该章选材非常精简,这是为了使读者能够迅速地深入到本书的主题─编写C#代码。
第2章  介绍C#的基础,其中包括怎样建立一个程序、基本语法和关于C#类型的信息。C#的语法和类型与它的母语言C和C++的语法和类型很像。
第3章  在任何语言中,计算的中心都是操纵带有表达式的数据。C#包括了一整套一元的、二元的和三元的表达式。重点介绍表达式的生成、运算符优先级和使用枚举及数组类型。
第4章  C#语言中用于控制程序流的有几种结构。除了传统的if和select语句、while和for循环语句之外,还介绍了新的foreach循环。我们还会讲到臭名昭著的goto语句。
第5章  高级程序员别不耐烦,调试非常重要,特别是对中级程序员来说尤其如此。因此,我专辟一章用来讲解调试。其中还有一节是介绍预处理指令。
第二部分  用C#编写对象和组件
第二部分介绍如何用C#编写对象和组件。对于一些人来说,这一部分可能是最难学习的内容。因此,我从很基本的知识开始讲,然后逐步深入。事实上,有三章都是专门介绍对象和组件编程的概念,其余各章用来介绍C#对象的其他类型及如何使用C#的面向对象特性。
第6章  应用C#编程的关键部分是了解面向对象的编程(OOP)。如果你纯粹使用OOP方法,那很好。该章是着重从方法、逻辑或过程来讲解程序设计。许多人在入门之前都会对面向对象的编程感到头痛。该章就是为帮助初学者尽快地入门而设计的。
第7章  C#中最常用的对象是类。该章就着重讲述创建类及其成员的机制,包括构造函数、析构函数、字段、方法、特性和索引器。其中还有怎样使用XML注释的完整的程序演示。
第8章  类定义了对象。反过来,类也有面向对象的行为。该章的讨论和例子都深入介绍了如何使用类来完成面向对象的编程。
第9章  C#中的重载的方法和操作符类似于C和C++中的相应方法和操作符,它们之间只有一些很小的差异。该章中举出了几个例子来说明怎样重载成员和操作符。这些例子也介绍了一些新的约束和安全防护措施。
第10章  C#具有广泛的错误处理和异常支持。该章所讨论的有关内容包括用try/catch/finally块进行异常处理,异常的创建和管理,异常的恢复。
第11章  事件和委托密切相关,它们也支持后联编方法(late-bound)调用。该章首先讲述委托对象,然后介绍如何与事件类成员一块使用委托对象。
第12章  命名空间主要是在本书的前面部分介绍的。但是,我们在这一章还要进行更详细的讨论。其中包括命名空间的声明,怎样使用命名空间来组织代码,以及怎样避免标识符名称的冲突。
第13章  结构是另外一种C#的对象类型。结构在机制上类似于类,但是拥有不同的语义,因为结构包含了与类相同的许多成员。该章着重讲解结构的独特性能以及它与类的类型的差别。
第14章  基于接口的编程在为对象暴露公用合同方面是很优秀的。该章介绍了在C#的程序中怎样实现接口的全面和详细的信息。
第15章  C#是一种强类型语言。该章重点介绍怎样维护类型的安全性,而同时又能够在用户定义的类型之间转换。
第三部分  在C#中使用类库
第三部分介绍了C#可以使用的几个类库。
第16章  虽然Web服务是一个新的事物,但桌面图形用户界面(GUI)应用程序仍然有大量的用户。该章在着重讲解如何使用Windows窗体控件创建简单的用户界面的同时,还讲解了Windows窗体库。
第17章  该章是专门用来讲解文件的输入/输出(I/O)的,说明如何使用C#写入和读取文件。另外,该章还讨论了数据流。
第18章  XML是集成在基类库里的,从而奠定了它在未来应用程序中的重要性。该章的例子着重介绍使用C#现有的库来操纵XML数据。
第19章  C#的程序数据库主要是通过ADO.NET类来实现的。该章的例子展示了怎样使用ADO.NET类来进行传统的和以Web为基础的访问。
第20章  ASP.NET的讨论重点介绍了Web软件的开发。ASP.NET的网页可以使用C#编写的代码来进行开发。该章的例子包括怎样使用C#代码来编写程序控件和Web程序。
第21章  远程化是可扩展的分布式对象编程技术。C#非常适合于使用远程化技术来开发程序。该章不仅展示了如何对远程对象进行编程,同时也展示了怎样使用该技术的扩展特性。
第22章  用C#建立Web服务特别方便。该章的例子使用了现有的ASP.NET基础结构和.NET实用程序来开发Web服务,从而展示了这种开发的简单性。
第四部分  C#高级主题
第四部分的几个高级主题主要针对提高性能和企业级编程项目讲述。
第23章  现代编程语言都支持多线程。C#也不例外。该章介绍怎样创建多线程程序及怎样实现线程同步。
第24章  基本类库中包括有支持Internet通信的类。该章讲解了通过TCP/IP套接字(socket)进行通信的方法以及怎样使用实现HTTP协议的类。该章中还有关于HTTP的Web和SMTP电子邮件编程的例子。
第25章  在编程中进行管理的大部分信息都能够处理文本数据。该章专门用来讲解如何应用C#进行字符串管理,包括String和StringBuilder类,字符串格式化和正则表达式等。
第26章  当数组类型不能够完全满足应用程序数据结构的需求时,可以考虑用集合。该章的例子说明了怎样使用基类库的几个集合,以及怎样使用代码来创建自定义的集合,以便实现需要的接口。
第27章  属性是用于在程序中添加声明性的功能的C#语言要素。该章说明了属性的用途以及如何创建自定义的属性。
第28章  C#有一种叫做反射(reflection)的能力。该能力使程序能够检查自身的信息。该章的例子展示了怎样执行反射,以及怎样动态地建立能够在存储器中运行或保存到可执行文件的程序。
第29章  本地化(localization)是使程序为不同的文化表示信息的过程。该章中提供了如何为多种文化实现本地化的一些例子。
第30章  实际上会有许多项目需要重用现有的本机库(native library)、与操作系统代码交互并执行低级的操作。该章讲述了怎样在C#中完成这些操作。
第31章  复杂的系统应该有检测运行时刻问题的机制。该章的例子中展示了如何应用基类库的相关元素对运行时刻进行调试和跟踪。
第32章  另外一个重要的运行时刻任务是捕获应用程序性能数据的能力。性能计数器用于收集统计数据,这些数据能够帮助分析特定情况下应用程序在运行时刻的执行情况。
第33章  目前有大量的COM和COM+程序员。该章中的程序展示了如何从C#调用COM以及如何从COM调用C#。基类库中包括有使C#程序能够使用COM+服务的企业服务类。该章中的例子展示了怎样使用COM+服务来完成任务,其中包括事务处理(transaction)、对象池(pool)等等。
第五部分  C#的环境
第五部分深入讨论C#的环境。
第34章  C#程序的内存是由高性能的垃圾收集器管理的。该章讨论了垃圾收集器的工作原理及其为什么它如此有效。该章中提供了如何与垃圾收集器交互的例子,及帮助对象控制清除内存处理的不同方法。
第35章  支持跨语言编程的C#的操作环境。该章的例子演示了如何应用不同语言创建代码并将它们编译到同一个程序中。关于通用语言规范(CLS)的介绍中阐明了影响C#程序的CLS的特定区域。
第36章  要了解C#程序怎样运行以及管理代码的意义,你必须对CLR内幕的理论有所了解。其中大部分的信息已经作为其他C#语言元素的一部分进行了说明。但是,该章的材料确能帮助巩固读者已经掌握的内容。
第37章  C#是以配件(assembly)形式部署的。因此,了解什么是配件以及怎样使用它们是很重要的。该章介绍了配件的组成并介绍了定义它们的各种属性。
第38章  该章介绍了基于代码的安全性方法,以及它们是怎样交互来保护系统不受代码影响的。其他部分介绍了怎样使用代码和属性来实现基于代码和基于角色的安全性。
第六部分  附录
第六部分由编译器的补充材料、.NET类库组件的概述和一些有用的其他资源组成。
附录A  在这个附录中提供了各种编译器选项。
附录B  这个附录提供了.NET库的概况。
附录C  这个选取的C#和.NET的Web站点的索引是很有帮助的。

原书书名:C# Unleashed (ISBN: 0-672-32122-x)
原出版社网址:www.samspublishing.com

作者简介

(美)Joseph Mayo:暂无简介

译者简介

王启丁 高锦文 刘明 等:暂无简介

图书目录

第一部分 C#的基础知识
第1章  C#的环境 1
1.1  通用语言基础结构 1
1.2  标准 3
1.3  .NET结构 3
1.3.1  通用语言运行时刻 4
1.3.2  库 4
1.3.3  语言 4
1.4  哪里适合用C# 4
1.5  小结 4
第2章  C#入门 5
2.1  编写简单的C#程序 5
2.2  注释 6
2.2.1  多行注释 6
2.2.2  单行注释 7
2.2.3  XML文档注释 7
2.3  标识符和关键字 8
2.3.1  标识符 8
2.3.2  关键字 9
2.4  样式 9
2.5  准备运行程序 10
2.6  基本的C#类型 11
2.6.1  变量声明 11
2.6.2  简单类型 11
2.6.3  结构类型 15
2.6.4  引用类型 15
2.6.5  枚举类型 15
2.6.6  字符串类型 16
2.7  定义赋值 17
2.8  基本约定 18
2.9  数组 19
2.9.1  一维数组 19
2.9.2  N维数组 20
2.9.3  不规则数组 20
2.10  与程序交互 21
2.11  小结 23
第3章  编写C#表达式 24
3.1  一元运算符 24
3.1.1  正值运算符 24
3.1.2  负值运算符 24
3.1.3  自增运算符 25
3.1.4  自减运算符 25
3.1.5  逻辑补运算符 26
3.1.6  按位求反运算符 26
3.2  二元运算符 26
3.2.1  算术运算符 26
3.2.2  关系运算符 28
3.2.3  逻辑运算符 29
3.2.4  赋值运算符 32
3.3  三元运算符 32
3.4  其他运算符 33
3.4.1  is运算符 33
3.4.2  as运算符 33
3.4.3  sizeof()运算符 33
3.4.4  typeof()运算符 33
3.4.5  checked()运算符 34
3.4.6  unchecked()运算符 34
3.5  枚举表达式 34
3.6  数组表达式 36
3.7  语句 37
3.8  程序块 37
3.9  标签 37
3.10  声明 38
3.11  运算符优先级和结合性 38
3.12  小结 39
第4章  使用语句和循环来控制程序流 40
4.1  if语句 40
4.1.1  简单的if 40
4.1.2  if-then-else 40
4.1.3  if-else if-else 41
4.2  switch语句 42
4.3  C#循环 45
4.3.1  while循环 45
4.3.2  do循环 46
4.3.3  for循环 47
4.3.4  foreach循环 48
4.4  goto语句 48
4.5  break语句 49
4.6  continue语句 50
4.7  return语句 50
4.8  小结 54
第5章  调试和预处理 55
5.1  预处理指令 55
5.1.1  define指令 55
5.1.2  条件预处理指令 55
5.1.3  错误 56
5.1.4  行编号 56
5.1.5  注释 56
5.2  调试C#程序 57
5.2.1  调试方法 57
5.2.2  使用调试程序来查找程序错误 57
5.2.3  附加到进程 62
5.3  小结 65
第二部分  用C#编写对象和组件
第6章  对象和组件概念 67
6.1  什么是对象 67
6.2  对象的分类 69
6.3  对象的层次 69
6.4  抽象 70
6.5  对象内的对象 71
6.6  具有不同行为的对象 71
6.7  组件接口 74
6.8  组件特性 77
6.9  组件事件 78
6.10  小结 80
第7章  类的使用 81
7.1  类成员 81
7.2  实例和静态成员 81
7.3  访问限制修饰符的使用 82
7.4  字段 82
7.4.1  字段初始化 82
7.4.2  明确的赋值 83
7.4.3  常量字段 84
7.4.4  只读字段 84
7.4.5  XML注释 85
7.5  构造函数 85
7.5.1  实例构造函数 85
7.5.2  静态构造函数 89
7.6  析构函数 89
7.7  方法 90
7.7.1  实例方法 90
7.7.2  方法的特征标记 90
7.7.3  方法主体 92
7.7.4  局部字段 93
7.7.5  方法参数 94
7.7.6  静态方法 99
7.7.7  XML注释 100
7.8  特性 100
7.8.1  特性访问器 101
7.8.2  透明访问 102
7.8.3  静态特性 103
7.8.4  后联编对象的创建 103
7.8.5  XML注释 104
7.9  索引器 105
7.10  完全的XML注释 106
7.11  小结 116
第8章  设计面向对象的程序 117
8.1  继承性 117
8.1.1  基类 117
8.1.2  抽象类 118
8.1.3  调用基类成员 125
8.1.4  隐藏基类成员 127
8.1.5  版本管理 129
8.1.6  sealed类 132
8.2  封装对象的原理 133
8.2.1  数据隐藏 133
8.2.2  支持封装的修饰符 133
8.2.3  其他封装策略 134
8.2.4  封装与继承的关系 134
8.3  多态性 134
8.3.1  实现多态性 135
8.3.2  再次隐藏 139
8.3.3  最多派生的实现 142
8.3.4  多态特性 144
8.3.5  多态索引器 146
8.4  小结 148
第9章  重载类成员和操作符 149
9.1  重载方法 149
9.2  重载索引器 151
9.3  重载操作符 155
9.4  解析重载成员 160
9.5  小结 161
第10章  处理异常和错误 162
10.1  try/catch块 162
10.2  finally块 163
10.3  预定义异常的类 164
10.4  处理异常 165
10.4.1  处理多个异常 165
10.4.2  处理和传递异常 166
10.4.3  从异常中恢复 168
10.5  设计自己的异常 170
10.6  checked和unchecked语句 172
10.7  小结 174
第11章  委托和事件 175
11.1  委托 175
11.1.1  定义委托 175
11.1.2  创建委托方法处理程序 175
11.1.3  接通委托和处理程序 176
11.1.4  通过委托调用方法 176
11.1.5  多重委托 177
11.1.6  委托的相等性 179
11.2  事件 179
11.2.1  定义事件处理程序 179
11.2.2  注册事件 181
11.2.3  实现事件 182
11.2.4  触发事件 184
11.2.5  修改事件添加/删除方法 185
11.3  小结 189
第12章  使用命名空间组织代码 191
12.1  为什么需要命名空间 191
12.1.1  组织代码 191
12.1.2  避免冲突 192
12.2  命名空间指令 192
12.2.1  using指令 192
12.2.2  alias指令 193
12.3  创建命名空间 194
12.4  命名空间成员 197
12.5  作用域和可见性 197
12.6  小结 198
第13章  创建结构 199
13.1  区别类与结构 199
13.1.1  值与引用 199
13.1.2  继承性 200
13.1.3  其他差别 201
13.1.4  权衡 201
13.2  类型系统统一 201
13.2.1  预定义类型为结构 202
13.2.2  装箱和拆箱 202
13.3  设计新的值类型 203
13.4  小结 205
第14章  实现接口 206
14.1  抽象类与接口 206
14.2  接口成员 206
14.2.1  方法 207
14.2.2  特性 207
14.2.3  索引器 207
14.2.4  事件 207
14.3  隐式实现 208
14.3.1  单个类接口的实现 208
14.3.2  模拟多态性行为 211
14.4  显式实现 216
14.5  映射 220
14.6  继承性 222
14.7  小结 225
第15章  执行转换 226
15.1  隐式转换与显式转换 226
15.2  值类型转换 230
15.3  引用类型转换 232
15.4  小结 233
第三部分  在C#中使用类库
第16章  图形用户界面 235
16.1  窗口 235
16.2  控件 238
16.3  N层结构 240
16.4  菜单 258
16.5  小结 263
第17章  文件的输入/输出和串行化 264
17.1  文件和目录 264
17.2  数据流 270
17.2.1  用数据流进行读取和写入 271
17.2.2  实现密码数据流 274
17.3  串行化 276
17.3.1  自动串行化 276
17.3.2  自定义串行化 279
17.4  小结 282
第18章  XML 283
18.1  写入 283
18.2  读取 285
18.3  小结 289
第19章  用ADO.NET进行数据库编程 290
19.1  建立连接 290
19.2  查看数据 291
19.3  操作数据 295
19.4  调用存储过程 298
19.5  检索数据集 303
19.6  小结 305
第20章  用ASP.NET编写Web应用程序 306
20.1  简单的网页 306
20.2  控件 307
20.2.1  服务器控件 307
20.2.2  HTML控件 307
20.2.3  验证控件 308
20.3  制作Web窗体 308
20.3.1  简单的Web窗体 308
20.3.2  操纵Web窗体的控件 312
20.4  后端代码的网页 315
20.5  小结 319
第21章  远程处理 321
21.1  基本的远程处理 321
21.1.1  远程处理服务器 321
21.1.2  远程处理客户 323
21.1.3  远程处理安装 325
21.2  代理 329
21.3  信道 332
21.4  生存期管理 334
21.5  小结 336
第22章  Web服务 337
22.1  Web服务的基础 337
22.1.1  Web服务技术 337
22.1.2  基本的Web服务 337
22.1.3  查看Web服务信息 339
22.2  使用Web服务 342
22.3  小结 344
第四部分  C#高级主题
第23章  多线程 345
23.1  创建新的线程 345
23.2  同步化 346
23.3  小结 348
第24章  浏览网络库 349
24.1  实现套接字 349
24.1.1  套接字服务器 349
24.1.2  套接字客户 352
24.1.3  编译和运行服务器和客户 355
24.2  使用HTTP 355
24.3  小结 356
第25章  字符串操作 358
25.1  String类 358
25.1.1  静态方法 358
25.1.2  实例方法 362
25.1.3  特性和索引器 370
25.2  StringBuilder类 370
25.2.1  实例方法 371
25.2.2  特性和索引器 375
25.3  字符串格式化 376
25.3.1  数字格式化 376
25.3.2  图片格式化 376
25.4  正则表达式 377
25.5  小结 378
第26章  C#集合 380
26.1  预定义的集合 380
26.1.1  ArrayList集合 380
26.1.2  BitArray集合 381
26.1.3  Hashtable集合 382
26.1.4  Queue集合 383
26.1.5  SortedList集合 383
26.1.6  Stack集合 384
26.2  集合的接口 385
26.3  创建集合 385
26.3.1  列表的集合 385
26.3.2  使用SiteList集合 394
26.4  小结 396
第27章  属性 397
27.1  使用属性 397
27.1.1  使用单个属性 397
27.1.2  使用多个属性 398
27.2  使用属性参数 399
27.2.1  位置参数 399
27.2.2  命名参数 400
27.3  使用属性目标 400
27.4  创建自己的属性 401
27.5  从类中获得属性 404
27.6  小结 405
第28章  反射 407
28.1  发现程序信息 407
28.2  动态地激活代码 412
28.3  Reflection.Emit 414
28.4  小结 417
第29章  本地化和资源 418
29.1  资源文件 418
29.1.1  创建资源文件 418
29.1.2  写入资源文件 420
29.1.3  读取资源文件 421
29.1.4  转换资源文件 422
29.1.5  创建图形资源 423
29.2  多个区域设置 428
29.2.1  实现多个区域设置 428
29.2.2  查找资源 433
29.3  小结 434
第30章  不安全代码和平台调用 435
30.1  不安全代码 435
30.1.1  代码不安全是什么含义 435
30.1.2  指针的功能 436
30.1.3  sizeof()操作符 439
30.1.4  stackalloc操作符 440
30.1.5  fixed语句 441
30.2  平台调用 443
30.3  小结 444
第31章  运行时刻的调试 446
31.1  简单的调试 446
31.2  条件调试 447
31.3  运行时刻的跟踪 450
31.4  进行断言 451
31.5  小结 452
第32章  性能监视 453
32.1  访问内置性能计数器 453
32.2  实现定时器 459
32.3  建立自定义的性能计数器 460
32.4  通过采样分析性能 469
32.5  小结 477
第33章  C#与COM的集成 478
33.1  从.NET与COM进行通信 478
33.1.1  早联编的COM组件的调用 478
33.1.2  后联编的COM组件的调用 479
33.2  显示.NET组件为COM组件 480
33.3  .NET对COM+服务的支持 482
33.3.1  事务 483
33.3.2  JIT活动 484
33.3.3  对象池 485
33.3.4  其他服务 486
33.4 小结 486
第五部分  C#的环境
第34章  垃圾收集 487
34.1  自动的存储器管理 487
34.1.1  垃圾收集器的工作原理 488
34.1.2  垃圾收集器的优化 488
34.2  正确地确定代码 489
34.2.1  析构函数的问题 489
34.2.2  Dispose模型 490
34.2.3  using语句 491
34.3  控制垃圾收集 492
34.3.1  控制对象 492
34.3.2  弱引用 494
34.4  小结 497
第35章  用C#进行跨语言编程 498
35.1  通用类型系统 498
35.2  通用语言规范 499
35.3  使代码与CLS兼容的提示 499
35.3.1  概论 499
35.3.2  命名 500
35.3.3  类型 500
35.3.4  方法 501
35.3.5  索引器和特性 501
35.3.6  事件 502
35.3.7  指针 502
35.3.8  接口 502
35.3.9  继承性 503
35.3.10  数组 503
35.3.11  枚举 504
35.3.12  属性 504
35.3.13  配件 504
35.4  编写跨语言的程序 505
35.5  小结 507
第36章  通用语言运行时刻 508
36.1  托管执行 508
36.1.1  创建源代码 509
36.1.2  编译为中间代码 509
36.1.3  编译为本机代码 509
36.1.4  执行程序 509
36.2  元数据 510
36.3  托管服务 510
36.3.1  异常处理 510
36.3.2  自动的生存期的管理 511
36.3.3  互操作性 511
36.3.4  安全性 511
36.3.5  配置和调试 511
36.4  小结 511
第37章  版本管理和配件 512
37.1  配件的原理 512
37.1.1  清单 513
37.1.2  属性 513
37.2  配件的特性 515
37.2.1  标识 515
37.2.2  作用域 515
37.2.3  版本管理 515
37.2.4  安全性 515
37.3  配置 516
37.3.1  启动配置 517
37.3.2  运行时刻的配置 517
37.4  部署 519
37.5 小结 519
第38章  保护代码安全 520
38.1  基于代码的安全性 520
38.1.1  证据 520
38.1.2  权限 520
38.1.3  代码组 521
38.1.4  安全策略级别 522
38.1.5  权限请求 523
38.1.6  实现安全策略 525
38.2  基于角色的安全性 527
38.3  安全实用程序 528
38.4  小结 529
第六部分  附   录
附录A  编译程序 531
附录B  .NET框架的类库 534
附录C  在线资源 537

教学资源推荐
作者: 试题研究编写组
作者: 王月海 何丽 孟丹 张艳苏 编著
作者: 张秉森 孔倩 张晨策 编著
参考读物推荐
作者: [美]Alan J.Kalameja
作者: (美)Hector Cuesta 著