首页>参考读物>计算机科学与技术>软件与程序设计

C# 4.0权威指南
作者 : 姜晓东 著
出版日期 : 2010-11-23
ISBN : 978-7-111-32187-3
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 614
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是一本不可多得的关于C# 4.0的教程和参考书。它在.NET 4.0和VS 2010的基础上,以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,由浅入深、循序渐进地讲解了C#的方方面面,精炼而全面地阐述了C# 4.0的各种特性,使读者能够快速理解、学习和使用C#。

图书特色

C# 4.0是C#的里程碑版本之一,不仅契合了时下编程语言的发展方向,而且在多个方面进行了创新和增强,如动态支持、命名参数和可选参数、Office可编程性、协变和逆变、类型等效性、Visual Studio 2010集成开发环境的改进等,本书对C# 4.0进行了全面而完美的展示。
本书内容全面、新颖、图文并茂、实例详尽,给出了大量代码示例和图示,以帮助读者更容易和更透彻地理解C#的各个知识点。本书的目标不只是让读者全面掌握C# 4.0,更重要的是希望读者能学会用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API。本书不仅是所有希望掌握.NET平台开发技术的读者的理想学习资料,而且也是所有.NET(C#)程序员不可多得的参考书,适合各层次的微软技术开发者和高校的师生阅读。
作 者 简 介
姜晓东  资深微软技术专家和系统架构师,对.NET体系架构、C#、CIL、Win32平台都有较深入的研究。著名微软技术讲师,在江西微软技术中心主讲软件设计(UML和设计模式)和.NET FrameWork方面的课程,曾在微软区域技术中心的“周五讲坛”主讲C#和Windows Mobile开发方面的课程,并获得“最佳讲师”称号。多年来一直活跃在研发一线,具有多年的项目研发经验,曾参与了财政工程项目、国家863软件项目以及电子基金项目的研发,在桌面应用和Web应用方面都积累了丰富的实践经验。
CSDN的元老级会员,51CTO的技术博客专家,对IT技术的发展方向有独到的见解,近期关注HTML 5和移动开发。

易懂、易学、权威的C#教程
一部用图演绎C# 4.0的经典,广度、深度和实践性完美结合
资深微软专家亲自执笔,微软开发者社区和技术专家联袂推荐

作为微软.NET技术的核心之一,C#经过近10年的发展,各方面都已经非常成熟。一路摧城拔寨,在编程语言的江湖中,地位举足轻重。C# 4.0以更强大的功能、更丰富的特性带领C#进入了一个全新的时代,能给企业和开发者带来更大的价值。本书用一种极易于读者理解的方式——图解,将C# 4.0的所有内容完美地呈现了出来,必定会成为C#领域的经典之作,强烈推荐。
——微软技术开发者社区
编程语言类的图书用汗牛充栋来形容不嫌夸张,C#方面的书亦不在少数,但是绝大多数书在写作方式上都千篇一律,毫无新意可言,俗语云:一图胜千言,图是一种比文字更易于理解的知识表现形式。本书开创性地使用图解的方式对C# 4.0涵盖的所有知识点的原理、使用方法和要领进行了系统而细致地讲解,是一本易学易懂的C#参考书,强烈推荐。
——51CTO读书频道
本书的作者是C#领域的权威专家,多年来一直活跃在研发一线,不仅实践经验极其丰富,而且在大量演讲和授课中积累了丰富的经验,非常精通于传授之道,能以巧妙的方式和生动的讲解化复杂为简单,这是本书区别于其他所有C#类图书的特点之一。除了写作方式上的创新外,本书在内容上亦颇具竞争力,不仅对C#做了全面的讲解,而且还深入浅出地对所有的知识点进行了深入的分析,既适合初学者系统学习,又适合广大开发者在工作中备查。
——马伟
资深微软技术专家
经典著作《ASP.NET 4权威指南》作者

图书前言

这是一本开发人员写给开发人员的书。
  我从2002年开始接触C#语言,并一直使用至今,希望能通过自己在开发一线所积累的一些经验,帮助大家从本书中获得自己真正想要的知识,与大家一起经历一次愉快的C#之旅。我认为,比较好的一种学习方式就是抱着欣赏的态度来学习和品赏。回味之余,趁热打铁地进行动手练习,效果会更好。
  我本人非常喜欢和欣赏C#语言的优雅和高效。因此,在本书的写作过程中,我也尽量以通俗易懂的文字、有说服力的示例以及可以“胜千言”的图表,来帮助大家理解各个知识点。“图解”是本书区别于同类书的最大一个亮点,书中用大量图表对各种知识点进行了阐释和辅助说明,清晰而简洁,是一本名副其实的图解教程。
  本书不仅仅只是以图文并茂的方式全面而系统地讲解C#的语法知识和使用方法,更重要的是,它还从.NET框架底层机制和语言设计思想的角度对C#进行了剖析,让读者不仅能知其然,还能知其所以然。
C# 4.0新特性总述
  在介绍C# 4.0的新特性之前,先来简单了解一下C#(读音为“C sharp”)语言的历史。从2002年C# 1.0呱呱坠地,到2010年C# 4.0隆重发布,微软在8年时间里完成了4个主要版本的改进和升级,主要变化如下:
  q C# 1.0新增托管代码……
  q C# 2.0新增泛型支持……
  q C# 3.0新增LINQ、Lambda表达式功能……
  q C# 4.0新增命名和可选参数、动态语言支持……
  图0-1展示了C#语言的发展历程。事实上,C#的发展也离不开.NET Framework的发展,C# 4.0依赖于.NET Framework 4的一些新特性,其中DLR(Dynamic Language Runtime,动态语言运行时)是一个信号—一个微软将更加重视动态语言的信号。我们知道,C#是静态类型语言,引入DLR将带来什么好处?本书对此给出了详尽的答案。
图0-1  C#语言发展路线图
  以下是C# 4.0的一些新特性。
  q 命名和可选参数
  在4.0版本之前,如果要调用一个方法,必须传入方法签名规定的参数个数,并且每个参数的类型也要一致。在某些情况下,这样做十分繁琐,比如有时候并不是所有的参数值都需要指定,因此可能需要提供方法的多个重载。这种情况在C# 4.0中已经得到很好的改进,我们可以为参数提供默认值,而且可以根据需要忽略其中的某几个参数。
  q 协变和逆变
  在编程语言中,“协变”是指能够使用比原始指定的派生类型派生程度更大的类型,“逆变”则是指能够使用派生程度更小的类型。在.NET Framework 4和Visual Studio 2010中,C# 和 Visual Basic都支持在泛型接口和委托中使用协变和逆变,并允许隐式转换泛型类型参数。
  q 动态语言运行时
  DLR是构建于CLR之上的一系列类库,可以提供对动态语言的支持。.NET CLR的一个核心价值就是支持多语言并允许它们之间互操作。动态语言在近些年已变得日益流行,因此人们希望使用自己喜欢的动态语言,并且在不失去卓越的.NET互操作性的前提下构建应用程序。DLR让这种想法成为现实。
  DLR也支持.NET平台上现有的语言。它是静态类型的语言(例如C#),增加了动态的特性。使用C# 4.0,可以很方便地支持动态对象,如COM Interop调用、HTML DOM和.NET反射等。
  动态语言可以在运行时识别一个对象的类型,然而,在C#等静态类型语言中,必须在设计时就指定对象的类型。
  在Visual Studio 2010中,DLR为C#引入了新的dynamic对象,增加了对动态特性的支持,从而允许和动态语言之间的互操作。
  q 并行编程
  现在,使用C# 4.0可以更好地利用多核处理器的处理能力,使用处理器的各个核心进行并行计算,这在视频转换、图像处理等很多领域都非常有用。之前版本的.NET应用在默认情况下都是单线程执行的,因此它们虽然运行于多核的处理器上,但实际上只使用了一个内核。相对于单核处理器来说,虽然多核处理器可以让多个应用具有更快的运行速度 ,但是却并不一定会让你的应用运行得更快。因此,要充分利用多核处理器,我们需要对旧的应用进行改造,从而可以让它们具有并行处理的能力。
  .NET 4通过新增加的“并行运行时”功能来支持并行编程特性,同时在BCL中也增加了一组公共类型和API。API主要包括“任务并行库”(TPL)和“并行LINQ”(PLINQ)两个部分。
  q COM Interop功能增强
  以. NET为代表的托管代码世界和以COM(Component Object Model,组件对象模型)等技术为代表的非托管代码世界,它们的编程模型完全不同,为了保持向下兼容,.NET通过引入COM Interop(COM互操作)作为连接两个世界的桥梁。COM Interop可以使得. NET程序在不修改原有COM组件的前提下方便地访问COM组件,这一点非常重要。在C# 4.0中,使用COM Interop将更加方便和直观。
为何写作本书
  写作是一件非常不容易的事,甚至可以说是一项浩大的工程,本书写作的动力是分享。我一直坚持技术博客(www.nod6.net)的写作,不定期地将自己在工作中遇到的一些问题的解决思路和方案整理出来与大家分享。分享的过程实际也是一种再学习,很多知识自己理解起来相对容易,但是要写出来让别人也理解却不那么容易。正如我们写程序,实际也是与计算机沟通的过程,我们只有把自己的想法转换为计算机能够理解的代码,计算机才能正确地执行。本书写作历时近8个月,无数个周末和深夜都在写作中度过。我现在的心情既激动又忐忑,激动的是本书终于完稿,忐忑的是不知能否给读者带来足够好的阅读体验,以及是否能为读者朋友提供应有的帮助。如果在阅读过程中发现任何问题,非常欢迎大家给我写信(jiangxd_6605@qq.com),互相学习、共同提高也是本书的目的之一。
本书面向的读者
  本书面向的读者如下:
  q 希望全面学习和掌握C#语言的初级读者,有没有其他编程语言基础都无所谓;
  q 具有一定C#基础,想要提高且更深入理解C#的中级读者;
  q 开设了.NET相关专业的高等院校师生;
  q .NET培训机构的学员和教师。
如何阅读本书
  本书共分为三个部分:
  q 第一部分:.NET体系结构。这一部分建议所有读者阅读,要学习好C#,了解.NET体系结构是十分必要的。在阅读这一部分的过程中,还要重点分清各种术语名词,并加以理解。
  q 第二部分:语法篇。这是本书的主要内容,也是重点内容。它有三个特点:第一,系统全面;第二,通俗易懂;第三,不乏深度。既适合系统学习,又适合作为工作时的备查手册。
  q 第三部分:附录。附录中包含了两大部分内容:附录A是Visual Studio 2010的使用方法详细介绍,这将帮助没有经验的读者在短时间内熟悉开发环境;附录B是C#编码规范,这是所有C#开发者都应该铭记于心的,如果记不住,请把它整理好贴在你的办公桌旁吧!
  对于有一定编程基础,但没有C#基础的初学者来说,可以首先通读本书的第一部分,对.NET体系结构建立宏观的认识;接着阅读本书的第三部分,在真正开始C#语言之旅之前,需要熟悉它的开发环境和编码规范;最后逐章阅读本书的第二部分,深入细致地学习C#的各个知识点。在这一过程中,强烈建议你动手实践各章节的代码示例,这样更有助于理解和掌握,并培养实际动手的能力。如果你已经有一定的C#基础,可以根据自己的需要来安排阅读的顺序。
致谢
  在本书的写作过程中,杨福川先生和曾珊女士给予了我很大的帮助和支持,并提出了很多中肯的建议。
  感谢我所就职的公司以及各位领导和同事,是他们给了我学习和成长的机会。
  还要特别感谢我的母亲和妻子(喻蕾女士),感谢她们在生活和工作中对我无微不至的照顾和关心。
  此外,我还想借本书表达对先父的怀念之情。
  本书的出版是大家共同努力的结果,谢谢你们。
  在本书编写过程中,我虽已力求精益求精,并已尽了最大努力,但仍难免会存在一些疏漏和不足之处,敬请大家不吝批评指正。
  最后,预祝开卷有益,希望本书能成为你的良师益友,陪你度过一段愉快而又充满收获的C#旅程!

上架指导

计算机\程序设计

封底文字

作为微软.NET技术的核心之一,C#经过近10年的发展,各方面都已经非常成熟。一路摧城拔寨,在编程语言的江湖中,地位举足轻重。C# 4.0以更强大的功能,更丰富的特性带领C#进入了一个全新的时代,能给企业和开发者带来更大的价值。本书用一种极易于读者理解的方式——图解,将C# 4.0的所有内容完美地呈现了出来,必定会成为C#领域的经典之作,强烈推荐。
——微软技术开发者社区
编程语言类的书用汗牛充栋来形容不嫌夸张,C#方面的书亦不在少数,但是绝大多数书在写作方式上都千篇一律,毫无新意可言,俗语云:一图胜千言,图是一种比文字更易于理解的知识表现形式。本书开创性地使用图解的方式对C# 4.0涵盖的所有知识点的原理、使用方法和要领进行了系统而细致地讲解,应该是一本易学易懂的C#参考书。强烈推荐。
——51CTO读书频道
本书的作者是C#领域的权威专家,多年来一直活跃在开发一线,不仅实践经验极其丰富,而且在大量演讲和授课中积累了丰富的经验,非常精通于传授之道,能以巧妙的的方式和生动的讲解化复杂为简单,这是本书区别于其他所有C#类图书的最大特点。除了写作方式上的创新外,本书在内容上亦颇具竞争力,不仅对C#做了全面的讲解,而且还深入浅出地对所有的知识点进行了深入的分析,既适合初学者系统学习,又适合广大开发者在工作中备查。
——马伟 资深微软技术专家,经典著作《ASP.NET 4权威指南》作者

作者简介

姜晓东 著:中文书名:C# 4.0权威指南英文书名:C# 4.0: The Definitive Guide 封面宣传语:易懂、易学、权威的C#教程一部用图演绎C# 4.0的经典,广度、深度和实践性完美结合资深微软专家亲自执笔,微软技术社区和技术专家联袂推荐基于.NET Framework 4和Visual Studio 2010 内容简介: 本书由国内资深微软技术专家亲自执笔,微软技术开发者社区和技术专家联袂推荐。内容新颖,基于最新的C# 4.0、NET Framework 4和Visual Studio 2010;写作方式有创新,用图解的方式对C#进行了完美的演绎;内容全面,不仅重点讲解了C# 4.0的所有新特性,而且对C#的所有知识点的原理、用法和要点都进行了全面的讲解和深度的分析,广度和深度完美结合。本书注重实践,包含大量有价值的示例代码,可操作性极强。全书分为三个部分:准备篇首先对.NET体系结构进行了全面的介绍,能帮助所有.NET相关技术的读者建立.NET的大局观,对初学者尤为重要,接着用简单但完整的示例演示了C#应用程序开发的全过程,能迅速带领读者进入实践状态;语法篇对C#的语法进行了系统而全面的讲解,包括标识符和关键字、变量和常量、类型以及类型转换、表达式和运算符、语句、方法、类、继承、多态、接口、结构、枚举、委托、事件、泛型、数组、集合、字符串和正则表达式、异常处理、命名空间和程序集、预处理指令、元数据和特性、异步编程和多线程编程、I/O操作、XML处理增强的COM Interop和并行编程等;附录部分讲解了Visual Studio 2010的安装、配置和使用,以便于没有经验的初学者能快速搭建开发环境。本书不仅是所有希望掌握.NET平台开发技术的读者的理想学习资料,而且也是所有.NET(C#)程序员不可多得的参考书,适合各层次的微软技术开发者和高校的师生阅读。

图书目录

前 言
第一部分 .NET体系结构
第1章  .NET体系结构 2
1.1  .NET框架概述 3
1.2  .NET的平台无关性 4
1.3  公共语言运行时 5
1.4  通用类型系统 6
1.4.1  值类型和引用类型 7
1.4.2  装箱和拆箱 7
1.5  公共语言规范 9
1.6  语言的互操作性 9
1.7  即时编译 10
1.8  中间语言 10
1.9  基类库 11
第2章  从“Hello World!”开始 12
2.1  一个简单的C#程序 12
2.2  编译和运行程序 13
2.2.1  在Visual Studio 2010中编译
和运行 13
2.2.2  通过命令行编译和运行 14
2.3  详细介绍 17
2.4  小结 19
第二部分 语法篇
第3章  标识符和关键字 22
3.1  标识符 22
3.2  关键字 23
3.3  标识符的命名约定 25
3.4  小结 25
第4章  变量、常量和类型 26
4.1  变量 26
4.1.1  给变量命名 26
4.1.2  声明变量 27
4.1.3  变量的初始化 27
4.1.4  类型推断 29
4.1.5  变量的作用域 30
4.2  常量 32
4.3  数据类型 33
4.3.1  内置的值类型 34
4.3.2  内置的引用类型 41
4.3.3  指针类型 46
4.3.4  Nullable类型 46
4.3.5  dynamic类型 47
4.4  进阶阅读:关于动态语言运行时 49
第5章  类型转换 51
5.1  隐式类型转换 51
5.1.1  数值类型 52
5.1.2  引用类型 53
5.1.3  装箱 54
5.2  显式类型转换 55
5.2.1  数值类型 56
5.2.2  溢出检查 57
5.2.3  引用类型 58
5.2.4  拆箱 58
5.3  as和is运算符 59
第6章  表达式和运算符 64
6.1  表达式 64
6.2  运算符的类型 65
6.3  运算符的优先级 65
6.4  算术运算符 66
6.5  求余运算符 67
6.6  递增运算符和递减运算符 68
6.7  关系和类型检测运算符 69
6.8  相等性判断运算符 70
6.9  条件运算符 72
6.10  逻辑运算符 73
6.11  位运算符 74
6.12  赋值运算符 75
6.13  typeof运算符 76
6.14  运算符重载 77
6.14.1  运算符的重载 77
6.14.2  可重载的运算符 78
第7章  语句 79
7.1  什么是语句 79
7.2  程序的三种结构 79
7.2.1  顺序结构 80
7.2.2  分支结构 80
7.2.3  循环结构 80
7.3  条件语句 81
7.3.1  if语句 81
7.3.2  switch语句 84
7.4  跳转语句 85
7.4.1  break语句 86
7.4.2  continue语句 87
7.4.3  return语句 87
7.4.4  throw语句 88
7.4.5  goto语句 89
7.4.6  default语句 89
7.5  标签语句 89
7.5.1  标签 90
7.5.2  标签语句的有效范围 90
7.6  循环语句 90
7.6.1  while循环 90
7.6.2  do…while循环 91
7.6.3  for循环 92
7.6.4  foreach…in循环 94
7.7  using语句 95
第8章  方法 97
8.1  方法的构成 97
8.2  局部变量和常量 98
8.3  方法的调用 99
8.4  返回值 101
8.5  参数 101
8.5.1  形参 102
8.5.2  实参 102
8.5.3  新特性:命名和可选参数 103
8.6  四种类型的参数 106
8.6.1  按值传递参数 106
8.6.2  按引用传递参数—
关键字:ref 108
8.6.3  输出参数—关键字:out 111
8.6.4  参数数组—关键字:
params 113
8.7  栈帧 114
8.8  递归 115
8.9  方法的重载 116
8.10  静态方法 117
第9章  类 119
9.1  类是什么 119
9.2  “Hello World!”程序回顾 120
9.3  类的声明 121
9.4  类的成员 121
9.4.1  字段 122
9.4.2  静态字段 123
9.4.3  方法 124
9.4.4  字段的初始化 124
9.4.5  属性 126
9.5  类的实例:对象 135
9.6  实例化中的内存分配 135
9.7  实例的成员 136
9.8  this关键字 136
9.9  访问修饰符 137
9.10  访问类的成员 138
9.10.1  从类内部访问成员 139
9.10.2  从类外部访问成员 139
9.10.3  从类外部访问静态成员 140
9.11  构造函数 140
9.12  对象初始化列表 146
9.13  析构函数 148
9.14  只读字段和常数 150
9.15  索引器 151
9.16  分部类型和分部方法—
修饰符:partial 152
9.16.1  分部类 153
9.16.2  分部方法 155
9.17  注释 158
9.17.1  行注释 158
9.17.2  块注释 159
9.17.3  XML文档注释 160
第10章  继承 163
10.1  类的继承 163
10.2  访问继承的成员 165
10.3  使用new修饰符隐藏基类的成员 166
10.4  访问基类的成员 167
10.5  类的初始化顺序 168
10.6  在派生类中指定基类构造函数 170
10.7  类的访问修饰符 173
10.8  跨程序集的继承 173
10.9  密封类 175
10.10  静态类 176
10.11  扩展方法 177
10.12  派生类型的向上转型 178
第11章  多态 181
11.1  重载方法 182
11.2  虚方法 185
11.3  覆写方法 186
11.4  覆写标记为override的方法 188
11.5  抽象类及抽象方法 190
第12章  接口 192
12.1  定义接口 193
12.2  声明和实现接口 193
12.3  基类中的实现作为接口实现 197
12.4  实现多个接口 198
12.5  实现具有相同成员的接口 199
12.6  显式接口成员实现 200
12.7  调用显式接口成员实现 202
12.8  接口的派生 203
第13章  结构 205
13.1  什么是结构 205
13.2  结构是值类型 206
13.3  给结构赋值 208
13.4  构造函数 209
13.4.1  实例构造函数 209
13.4.2  静态构造函数 211
13.5  多态和可继承性 212
13.6  装箱和拆箱 213
13.7  结构和类的对比 214
13.7.1  字段初始化 215
13.7.2  性能 215
13.7.3  结构和类的适用场合分析 217
第14章  枚举 218
14.1  什么是枚举 218
14.2  设置枚举的底层数据类型 221
14.3  显式设置枚举的成员常量值 222
14.4  使用标志枚举 223
14.5  一些使用建议 225
第15章  委托 226
15.1  什么是委托 226
15.2  委托是引用类型 227
15.3  委托的声明和实例化 227
15.4  委托的组合 229
15.5  为委托添加一个方法 230
15.6  从委托中删除一个方法 231
15.7  委托在回调中的应用 232
15.8  委托中的协变和逆变 234
15.9  匿名方法 236
15.10  l表达式 238
第16章  事件 240
16.1  什么是事件 240
16.2  事件和委托的关系 241
16.3  如何声明事件 241
16.4  订阅事件 242
16.5  触发事件 245
16.6  使用和扩展EventArgs类 246
16.7  使用自定义委托 247
16.8  事件访问器 249
第17章  泛型 251
17.1  什么是泛型 251
17.2  泛型类型 254
17.3  泛型类型的声明和实例化 255
17.4  类型参数 258
17.5  类型参数的约束 259
17.5.1  where子句 260
17.5.2  约束类型和顺序 261
17.6  泛型类 261
17.7  泛型结构 264
17.8  泛型接口 265
17.9  泛型委托 267
17.10  泛型方法 268
17.11  扩展方法和泛型类 270
17.12  协变和逆变 271
第18章  数组 273
18.1  数组的声明 273
18.2  数组的类型 274
18.3  数组派生自Array对象 275
18.4  实例化数组 276
18.5  初始化数组 277
18.5.1  显式初始化一维数组 278
18.5.2  显式初始化矩形数组及要点 279
18.5.3  隐式类型数组 281
18.6  访问数组元素 282
18.7  交错数组 282
18.7.1  交错数组的声明 283
18.7.2  交错数组的实例化 283
18.7.3  交错数组的初始化 284
18.8  矩形数组和交错数组的对比 285
18.9  使用foreach和for语句访问数组 287
18.9.1  foreach语句 287
18.9.2  for语句 288
18.9.3  迭代变量 289
18.10  数组协变 291
18.11  从Array对象继承的成员 292
18.12  数组的浅复制和深复制 294
第19章  集合 298
19.1  集合接口 298
19.2  常用的几种集合类型 300
19.2.1  ArrayList 301
19.2.2  Hashtable 304
19.2.3  Queue和Queue 307
19.2.4  SortedList 309
19.2.5  Stack和Stack 310
19.2.6  BitArray 313
19.2.7  List 314
19.2.8  HashSet 323
19.3  自定义集合 326
19.3.1  CollectionBase 327
19.3.2  ReadOnlyCollectionBase 331
19.4  迭代器 333
19.5  泛型集合接口支持协变和逆变 336
19.6  LINQ to Objects 339
19.6.1  LINQ简介 339
19.6.2  查询语法 340
19.6.3  方法语法 340
19.6.4  查询操作的组成 341
19.6.5  关于查询变量 342
19.6.6  查询语法和方法语法的统一 342
第20章  字符串与正则表达式 343
20.1  理解字符串 343
20.2  字符串的常用成员 345
20.3  字符串格式化 351
20.4  使用StringBuilder类 355
20.5  正则表达式 357
20.5.1  正则表达式基本语法 358
20.5.2  .NET对于正则表达式的
支持 363
20.5.3  开始使用正则表达式 366
第21章  异常处理 368
21.1  异常类 368
21.2  抛出异常 369
21.3  捕获异常 370
21.4  自定义的异常类 373
21.5  异常处理的原则 374
第22章  命名空间和程序集 375
22.1  命名空间 375
22.1.1  使用命名空间 376
22.1.2  使用别名 378
22.2  程序集 378
22.2.1  程序集的结构 380
22.2.2  程序集清单 381
22.2.3  私有程序集和共享程序集 382
22.2.4  应用程序域 383
22.2.5  创建动态程序集并动态
加载执行 384
22.2.6  全局程序集缓存 387
第23章  预处理指令 391
23.1  什么是预处理指令 391
23.2  观察一段示例 391
23.3  预处理指令集 393
23.4  #define和#undef指令 393
23.5  条件编译指令 394
23.6  #warning和#error指令 396
23.7  #line指令 396
23.8  #region和#endregion指令 399
23.9  #pragma warning指令 400
第24章  元数据和特性 401
24.1  元数据 401
24.1.1  从IntelliSense谈起 405
24.1.2  访问元数据 406
24.2  特性(Attribute) 412
24.2.1  什么是特性 414
24.2.2  创建自定义特性 418
24.2.3  访问特性 424
24.2.4  常用特性 425
24.2.5  特性应用完整示例 433
第25章  异步编程和多线程编程 437
25.1  进程和线程 437
25.2  BeginInvoke和EndInvoke 439
25.3  IAsyncResult接口和
AsyncResult类 440
25.4  异步编程的4种方法 441
25.4.1  使用EndInvoke 441
25.4.2  使用WaitHandle 442
25.4.3  轮询 444
25.4.4  回调 445
25.5  多线程编程 446
25.5.1  Thread类 447
25.5.2  使用线程池 448
25.5.3  线程同步 450
25.5.4  死锁 453
第26章  I/O操作 457
26.1  文件和目录 457
26.1.1  File和Directory 457
26.1.2  FileInfo和DirectoryInfo 459
26.1.3  文件I/O的改进 462
26.2  流 467
26.3  异步操作 470
26.4  网络流的使用 472
26.5  序列化 476
26.5.1  BinaryFormatter 478
26.5.2  SoapFormatter 480
26.5.3  XML序列化 483
26.6  独立存储机制 485
第27章  XML处理 488
27.1  System.Xml命名空间 488
27.2  使用DOM 489
27.3  XPath和XSLT 493
27.4  LINQ to XML 498
27.4.1  LINQ to XML类库介绍 498
27.4.2  创建XML文档 498
27.4.3  使用LINQ进行遍历和查询 499
27.4.4  修改XML文档 500
第28章  增强的COM Interop 502
28.1  Dynamic lookup 502
28.1.1  dynamic关键字 503
28.1.2  访问Python代码 504
28.1.3  访问COM对象 506
28.2  改进的参数传递 508
28.3  完整示例 512
第29章  并行编程 515
29.1  任务并行库 516
29.1.1  并发和并行 517
29.1.2  并行编程架构 517
29.2  Parallel类 518
29.2.1  For方法重载一 520
29.2.2  For方法重载二 521
29.2.3  For方法重载三 525
29.3  Task类和Task类 526
29.4  数据并行 528
29.5  任务并行 531
29.6  TaskFactory类和TaskFactory 类 533
29.6.1  任务创建选项 535
29.6.2  并发选项 548
29.6.3  后续任务选项 550
29.7  PLINQ 559
第三部分 附  录
附录A  Visual Studio 2010
快速入门 564
附录B  C#编码规范 597

教学资源推荐
作者: 凌云 谢满德 陈志贤 吴海燕 编著
作者: (美) Bruce Eckel
作者: 尹宝林
参考读物推荐
作者: 章为忠 编著
作者: 景显强,龚向宇,黄军宝 著
作者: 郝冠军 著
作者: 康莉 李宽 陈国建 等编著