标题：C#面向对象程序设计与框架
图书信息
职业教育360  C#面向对象程序设计与框架
蔺华，唐菁，王宇灵编著
ISBN 978-7-121-13314-5
2011年6月出版
定价：55.00元
16开
464页
宣传语
本书附赠价值599元学习卡，您只需注册、登陆即可进行课程学习或寻找您的技术同盟……
内 容 简 介
微软公司一直引领IT行业的发展，平台占据市场绝大多数份额，特别是在目前的国内就业市场。而对于一个计算机的专业的从业人员，对微软整体技术的把握与发展，也是大多数IT从业人员的必然选择。
本书侧重实用性，从最基本的知识介绍开始，通过一半以上篇幅的从简到难的实验，系统地给读者介绍微软C#面向对象程序设计与框架。本书一共三大部分：第一部分：微软.NET平台。第二部分：C#语言。第三部分：面向对象的设计思想与UML。与之对应的实验，案例与实验的篇幅大概占一半，涵盖了几乎所有的知识点。
本书适合作为高等院校计算机及相关专业本科教材，也可供想要写出更快、更可靠程序的程序员及专业技术人员参考。本书能最快地把知识与积累，转换成为就业的资本和能力，可以让有基础的读者最快地发挥出积累、创造机会，也可以让没有基础的读者最快地学到最实用的技术，带来更多的发展与工作机会。
职业教育360丛书
编委会名单
宋文爱：教授，清华大学博士后、北京理工大学博士。太原市十届政协常委，山西省青年教育专家，山西省发展和改革委员会高级专家咨询委员会专家，山西省教育厅联系的高级专家，山西省软件行业协会理事，山西省高职高专计算机课程教学指导委员会主任委员。
白尚旺：太原科技大学华科学院副院长，软件工程技术研究所所长，主要从事数据库与软件工程技术，信息管理与决策支持等方面的教学与科研工作，在国内学术期刊上发表论文20余篇。主持完成的《DOCTOR HIS2000医院管理信息系统》，获得山西省科技进步二等奖；出版著作5部，2006年主持完成的《面向21世纪计算机系列教材》获得山西省教学成果二等奖。主持完成的《智能汽车售票系统》、《电子党务信息管理平台》、《自动化立体仓库控制与管理系统》等计算机应用系统在国内400多家单位得到应用，获得了良好的社会效益和经济效益。
孔令德：教授、博士，2008年被评为山西省省级教学名师、2009年被评为山西省模范教师。山西省高职高专计算机课程教学指导委员会副主任委员。
陆希：教授，山西省高职高专计算机课程教学指导委员会副主任委员。
尹四清：副教授，硕士生导师，山西省高职高专计算机课程教学指导委员会副主任委员。
王玉清：副教授，山西省高职高专首届“双师型”教学名师、优秀教师，山西省高职高专计算机课程教学指导委员会副主任委员。
蔺华：森纵艾德（北京）教育科技有限公司总裁、首席教育专家，曾任森泰达 IT 人才基地执行校长、中北大学软件学院实训中心主任、山西省教育厅软件学院建设评审专家委员，曾就职于微软（中国）有限公司平台及开发合作部，任 MSDN项目经理和北方区企业合作经理等职位，主要负责向国内软件企业和从业人员传播先进的软件技术、产品和平台及软件工程方法等。
唐菁：讲师，新加坡国立大学硕士，省级教改项目“软件类‘订单培养’教学模式的研究与实践”一等奖，2009年山西省计算机公共基础教学改革与建设优秀工作者，山西省高职高专计算机课程教学指导委员会秘书处秘书。
时允田：Java讲师，主讲CoreJava，Kjava，Android，毕业于北京大学信息学院计算机科学及应用，先后就职于秦鼎科技有限公司，SK希恩希软件技术有限公司，同方鼎欣信息技术有限公司，森纵艾德（北京）科技有限公司。主要开发领域：大型电信系统、视频教育软件、办公软件系统、J2ME手机游戏及应用程序的设计与开发、手机增值服务运营平台、手机游戏运营流程的控制及测试、嵌入式教学及项目应用开发和管理等。
王洪荣：.NET讲师。曾参与了日本小松公司、日本大型物流公司等的多个项目的开发，精通VB、C#、ASP NET、VBA等，具备Oracle、SQL Server等数据库的设计、应用和管理操作能力。超过三年.NET和SQL Server数据库培训经验，进行多次微软数据库认证培训工作和.NET教材研发以及项目研发等工作。
赵珊：企业资源信息化讲师。三年ERP项目经验、三年ERP教学经验，中央财经MBA，具有丰富的ERP行业背景。实施项目覆盖行业广泛，精通供应链管理和企业管理，尤其对生产型企业管理流有深入的了解。对ERP教学更有独到的教学方法，曾负责主编《企业供财链实施教程》。
金焰：企业资源信息化讲师。曾就职于中型生产制造型企业，任职企业信息化建设项目经理，并从事过大型服装企业ERP系统运维工作，有较丰富的ERP实施运维经验。精通供应链管理，尤其对生产型企业供应链管理流程和企业管理有独到的见解。任职期间参与森纵ERP教材的编写工作。
毛屹华：企业资源信息化讲师。用友软件资深顾问。从业十二年，主持或参与实施数百项目。精通财务供应链管理，对生产管理、客户关系管理也有较深入的研究。
蔡兴旺：硕士，计算机教学骨干教师。
王宇灵：实验师，在电子技术实验室、电子信息工程系办公室、软件学院教学科从事教学实验、管理等工作。
汤春林：副教授，山西省高职高专计算机课程教学指导委员会副主任委员。
赵树森：副教授，中北大学在读博士，中北大学先进学生工作者。 
吕艳荟：森纵教育资深实训管理人员，高级英语讲师。英语专业八级，曾获得黑龙江省英语公开课二等奖，具有四年IT实训管理及英语教学经验，参与多家院校和企业的IT人才培养及认证合作项目，深刻把握IT实训核心价值，擅长合作渠道维护，致力于规范并完善实训流程，提升实训品质。
胡海波：森纵教育平台运营总监，主要负责“职业教育360”和“我在学网”的整体运营，曾就职于中国数码集团等外资企业，8年远程教育工作经验，拥有独有的网站运营体系，擅长线上和线下协调作战，成功组织、服务、拓展营销渠道。
前  言
轻松掌握顶尖技术
随着Internet技术飞速发展，越来越多的人喜欢在网上搜索自己需要的资料，也有越来越多的企业将应用系统发布成网站，供自己的用户实现快捷、方便的业务处理。所以，浏览器/服务器（B/S）结构的应用程序也随着这种用户需求而被提升到更高的位置。传统的Windows编程，也一直占据程序设计领域重要的地位，特别是企业级应用市场。
森纵艾德（北京）教育科技有限公司汇集众多名师，全力打造一套关于.NET基础与提高系列“职业教育360”丛书，本套丛书关于.NET架构有三本书：《Web程序设计与架构》、《C#面向对象程序设计与框架》、《Windows程序设计与架构》。三本书的目标都是帮助您掌握创建和使用.NET应用程序所需要的基本技能，让您了解全新的.NET平台，以及ASP NET在其中扮演的角色，同时还可以掌握创建和使用Web富体、服务器控件、面向对象的程序设计与架构和XML Web服务的必需技能。
.NET是微软非常成熟的应用层解决框架技术，如今，随着.NET技术的方便性逐步提高，已经有越来越多的开发人员转入了.NET开发阵营，这使得这个技术领域内的初学者和急需提高的人员数量在不断增加。为了使初学人员或原来.NET的技术人员快速完整地了解关于.NET最新的技术，本书从基础到提高，由浅及深，在涵盖所有技术点介绍的同时，最终将具体技术应用到项目实例中，使得读者能够更全面、更容易、更深刻地了解有关.NET的所有新技术与所在领域的应用。
与其他.NET的书籍或教材相比，这套书具有以下特点：
案例学习 通过案例进行学习是本系列丛书的特色，真正手把手通过项目帮你掌握“实战”技能
内容广泛，技术领先 涵盖了.NET的基础知识，以及最新发布的.NET的新特性，内容涉及该技术的众多方面
系统性强 基于.NET编程所需的知识点，本书在组织内容时首先注重介绍读者需要的基础知识，然后根据由浅入深的学习顺序，依次介绍.NET语言的相关知识及各种开发技术。在介绍开发技术以前会补充很多和该技术有关的基础知识，这些知识将极大地帮助读者学习.NET语言
层次分明，各取所需 每部分适合不同层次的读者，比如需要ASP NET入门的读者可以通过基础部分，了解ASP NET的基础内容，如果需要提升，也可以通过后面的章节来实现，其他两本书也如此。本套书几乎是根据读者的需求量身定制的。希望本套书可以帮助更多的学者实现.NET程序员的梦想
本书特色
本书侧重实用性，从最基本的知识介绍开始，通过一半以上篇幅的从简到难的实验，系统地给读者介绍微软.NET平台的基础。本书介绍的技术都是市场最主流的，相关知识搭配是为了帮助读者尽快融入到市场主流公司的工作中去。
本书以基于项目学习为特色，全套教材统一到一个综合大项目中，项目来自于实践并加以丰富，既有全面的知识点涵盖，又不失实用性和完整性。
任务驱动案例授课是将项目中的某项任务为先导，引出解决问题所需要的知识点，并通过实际操作与分析式讲解来理解和讲授知识点。这颠覆了以往以互相毫无关系的简单小实例辅助理解抽象理论的授课方式，使学生能从更为逼真的实训教学项目环境中与项目一起成长，并能从中掌握大规模软件开发过程中软件工程实践和理论。
本 书 名 称 本 书 简 介
C#面向对象程序设计与框架 第一部分：微软.NET平台
第二部分：C#语言
第三部分：面向对象的设计思想与UML
及与之对应的实验，案例与实验的篇幅大概占一半，涵盖了几乎所有的知识点
按照学习的顺序和技术的难易程度，每一个知识点都配套详细的实训实验，通过实训实验让我们以最快的速度学习所有技术的一招一式。除了知识点以外，详细地讲解了150多个实验，200多个基础项目实验的源码，手把手地带领读者从零开始，掌握.NET开发的各个方面的知识点。而当我们学习知识和试验后，还有四个不同方向的中小型真实项目源码供我们理解，掌握它们以后就可以达到胜任著名外企开发职位或一般企业初级项目经理职位的水准。
本书读者对象
· 如果你是计算机专业的毕业生，这套书能最快地把大学的知识与积累，转换成为就业的资本和能力，让你最快地发挥出自己的积累，创造机会。
· 如果你想进入计算机行业，这套书能让你最快地学到最实用的技术，给你带来更多的发展与工作机会，明确以后的发展方向。
本书增值服务
通过本书的学习相信大家已经对相关的知识点有了一定的了解和认识，本书的学习只是一个开始。“职业教育360”提供的是一个平台。通过这个平台可以系统、持续地学习、交流并获得更多的服务。
“职业教育360”根据学员的兴趣爱好、水平高低，完善了全方位职业规划流程。从入学测评、技能学习、技能认证、职业素质教育、就业，为学员提供立体化的职业规划服务。同时网上提供丰富的视频课程、职业测评、在线学习、在线考试、专家博客、在线认证、在线答疑、学习社区、资源共享等资源优势。实训中心拥有资深的名师团队，提供汇集基地实训、项目实战等高质量的课程设置，让学员的技能水准能快速提高。
“职业教育360”平台提供了丰富的课后练习、自我评估，以及更多别的学习资源，大家可以通过以下的链接进入学习平台，获取更多的服务。
本书附赠价值599元的“职业教育360”平台学习资源，请根据书上的学习卡的提示登录平台进行学习。
关于本书实验部分的源码
本书中涉及的所有实验都有完整的代码文件及工程文件供读者下载。
除此之外，我们还给读者提供了四个晋级的项目源代码，分别针对不同的方向，涉及Windows窗体、Web、网络通信、移动设备、游戏等。
希望读者通过对这四个晋级项目的自学，能成长为一名微软技术的高手。
项 目 名 称 项 目 简 介
SMTP Client SMTP邮件客户端。通过此项目学习，让学生掌握一般的Windows Form项目开发。包含技术有：.NET Framework Windows基本的控件使用，多线程编程，I/O流，网络功能（mail），字体编码及文件格式定义保存使用
Club Site Starter Kit 入门级的ASP NET 2.0站点。通过学习，学生对网络程序的开发有一定认识，对基本的数据库连接、页面与代码逻辑的结构及服务器控件编程有一定掌握
Pocket Sudoku 趣味性的Windows Mobile游戏。通过学习，学生熟悉掌握一般的Mobile程序开发流程，对Mobile设备上的图形绘制、设备的使用、用户界面及简单的网络功能有一定认识
RSS Reader RSS阅读器。通过此项目学习让学生认识智能客户端的要素和一般结构，学习掌握XML和RSS技术，进一步提高.NET开发技术。可以尝试做RSS Reader的Web版本和Mobile版本
本书作者均来自一线院校老师，具有多年的实践项目经验和教学经验，其他参与编写人员有：宋文爱、孔令德、陆希、尹四清、王玉清、汤春林、赵树森、白尚汪、蔡兴旺，吕艳荟、王洪荣、胡海波。
目  录
第一部分：微软.NET平台
第1章  微软.NET平台介绍
（相关知识体系系统学习） 2
1.1  .NET Framework概述 2
1.1.1  Microsoft .NET计划 2
1.1.2  .NET Framework 2
1.2  公共语言运行库 4
1.3  .NET Framework类库 5
1.3.1  .NET Framework类库概述 6
1.3.2  命名约定 6
1.3.3  重要命名空间说明 6
1.4  通用类型系统 11
1.4.1  值类型 11
1.4.2  引用类型 11
1.5  托管代码的执行过程 12
1.6  托管模块 15
1.7  元数据 15
1.8  程序集 16
1.8.1  单文件程序集 16
1.8.2  多文件程序集 17
1.8.3  程序集的功能 17
1.8.4  程序集解决DLL Hell问题 18
1.8.5  两种程序集和两种部署方式 19
1.9  应用程序域 19
1.9.1  应用程序域和程序集 20
1.9.2  应用程序域和线程 20
1.9.3  编程应用程序域 20
1.10  内存管理 20
1.10.1  C++开发人员 20
1.10.2  Visual Basic开发人员 21
1.10.3  COM开发人员 21
1.11  异常处理 22
1.12  代码设计规范 23
1.12.1  大小写样式 23
1.12.2  标识符的大小写规则 24
1.13  命名规则 24
1.13.1  命名类、结构和接口的
规则 24
1.13.2  命名类成员的规则 25
1.13.3  命名参数的规则 25
1.13.4  命名命名空间 25
1.13.5  命名资源 26
1.14  .NET Framework 3.5新特性 26
1.14.1  .NET Compact Framework 26
1.14.2  ASP NET 26
1.14.3  Common Language Runtime 27
1.14.4  Threading 27
1.14.5  Networking 28
1.14.6  Windows Communication 
Foundation 28
1.14.7  Windows Forms 30
第2章  微软.NET平台
（相关知识案例分析） 31
2.1  案例分析要求与案例描述 31
2.1.1  案例分析要求 31
2.1.2  案例描述 31
2.2  案例分析1：安装Microsoft.
NET Framework SDK 32
2.2.1  案例描述 32
2.2.2  案例实现与技巧 32
2.3  案例分析2：创建一个简单的
.NET应用程序 35
2.3.1  案例描述 35
2.3.2  案例实现与技巧 35
2.3.3  代码分析 38
2.4  案例分析3：值类型与引用
类型 40
2.4.1  案例描述 40
2.4.2  案例实现与技巧 40
2.4.3  装箱拆箱操作 43
2.4.4  转换参考 44
2.5  案例分析4：查看元数据 45
2.5.1  案例描述 45
2.5.2  案例实现与技巧 45
2.6  案例分析5：使用程序集编程 48
2.6.1  案例描述 48
2.6.2  案例实现与技巧 48
2.7  案例分析6：异常处理 51
2.7.1  案例描述 51
2.7.2  案例实现与技巧 51
2.7.3  异常处理的最佳实践 57
2.8  案例分析7：使用.NET 
Framework工具 60
2.8.1  案例描述 60
2.8.2  案例实现与技巧 60
2.9  案例分析8：FxCop 61
2.9.1  案例描述 61
2.9.2  案例实现与技巧 61
2.10  案例分析9：使用Visual 
Studio 2005创建应用程序 64
2.10.1  案例描述 64
2.10.2  案例实现与技巧 64
2.10.3  Visual Studio 2005 IDE 66
2.11  案例分析10：控制程序集
版本 67
2.11.1  案例描述 68
2.11.2  案例实现与技巧 68
第二部分：C#语言
第3章  C#语言（3.5版本） 74
3.1  第一个C#应用程序 74
3.1.1  Hello World 74
3.1.2  Main()和命令行参数 76
3.2  数据类型 76
3.2.1  基元类型 76
3.2.2  整数类型 77
3.2.3  布尔类型 77
3.2.4  实数类型 77
3.2.5  字符类型 78
3.2.6  Checked与Unchecked 78
3.2.7  值类型与引用类型 79
3.2.8  值类型的装箱与拆箱 81
3.3  数组 81
3.3.1  作为对象的数组 81
3.3.2  一维数组 82
3.3.3  多维数组 82
3.3.4  交错数组 83
3.3.5  对数组使用foreach 85
3.3.6  将数组作为参数传递 85
3.3.7  使用ref和out传递数组 86
3.4  结构及枚举 86
3.4.1  使用结构 87
3.4.2  枚举 88
3.5  变量和常量 89
3.5.1  变量 89
3.5.2  常量 91
3.6  类型转换 91
3.6.1  隐式类型转换 91
3.6.2  显式类型转换 92
3.7  操作符及表达式 94
3.7.1  操作符及表达式 94
3.7.2  算术操作符 95
3.7.3  赋值操作符和表达式 97
3.7.4  关系操作符和表达式 98
3.7.5  逻辑操作符和表达式 103
3.7.6  移位运算符 104
3.7.7  条件逻辑运算符 104
3.7.8  条件运算符 105
3.8  语句 106
3.8.1  选择语句 106
3.8.2  迭代语句 107
3.8.3  跳转语句 110
3.8.4  异常处理语句 113
3.9  类及其成员 116
3.9.1  类 116
3.9.2  成员 117
3.10  委托及事件 117
3.10.1  委托 117
3.10.2  使用委托 118
3.10.3  事件 120
3.10.4  使用事件 121
3.11  泛型 123
3.11.1  泛型类和泛型方法 124
3.11.2  泛型的优点 126
3.11.3  泛型类型参数 127
3.11.4  泛型类 128
3.11.5  泛型方法 130
3.12  迭代器 131
3.12.1  概述 131
3.12.2  使用 132
3.12.3  yield语句 133
3.13  异常及其处理 134
3.14  命名空间 135
3.15  迭代程序 137
3.16  迭代程序实现 141
3.17  递归迭代 142
3.18  局部类型 144
3.19  匿名方法 145
3.19.1  传递参数到匿名方法 147
3.19.2  实现 148
3.19.3  一般匿名方法 149
3.19.4  示例 150
3.20  委托推理 151
3.21  属性和索引的可见性 152
3.22  静态类 152
3.23  全局命名空间限定符 153
3.24  内联警告 153
3.25  .NET 3.5平台的新性能 154
3.25.1  隐式类型本地变量 154
3.25.2  为对象和集合初始值
设定项 154
3.25.3  匿名类型 155
3.25.4  扩展方法 156
3.25.5  自动实现属性 156
3.25.6  分部方法 157
第4章  C#语言
（相关知识案例分析） 158
4.1  案例分析要求与案例描述 158
4.1.1  案例分析要求 158
4.1.2  案例描述 158
4.2  命令行参数 158
4.2.1  案例描述 158
4.2.2  案例实现与技巧 158
4.3  方法 160
4.3.1  案例描述 160
4.3.2  案例实现与技巧 160
4.4  值和枚举类型 162
4.4.1  案例描述 162
4.4.2  案例实现与技巧 163
4.5  属性 168
4.5.1  案例描述 168
4.5.2  案例实现与技巧 168
4.6  属性编程 176
4.6.1  案例描述 176
4.6.2  案例实现与技巧 177
4.7  XML文档注释 181
4.7.1  案例描述 181
4.7.2  案例实现与技巧 181
4.8  if-else语句 184
4.8.1  案例描述 184
4.8.2  案例实现与技巧 185
4.9  switch语句 186
4.9.1  案例描述 186
4.9.2  案例实现与技巧 186
4.10  循环语句 188
4.10.1  案例描述 188
4.10.2  案例实现与技巧 188
4.11  变长参数 190
4.11.1  案例描述 190
4.11.2  案例实现与技巧 191
4.12  数组 192
4.12.1  案例描述 192
4.12.2  案例实现与技巧 192
4.13  结构 193
4.13.1  案例描述 193
4.13.2  案例实现与技巧 193
4.14  C#语言与面向对象版本控制 195
4.14.1  案例描述 195
4.14.2  案例实现与技巧 195
4.15  自定义转换 197
4.15.1  案例描述 197
4.15.2  案例实现与技巧 197
4.16  抽象类 200
4.16.1  案例描述 200
4.16.2  案例实现与技巧 200
4.17  const关键字 201
4.17.1  案例描述 201
4.17.2  案例实现与技巧 201
4.18  readonly关键字 203
4.18.1  案例描述 203
4.18.2  案例实现与技巧 203
4.19  静态成员 204
4.19.1  案例描述 204
4.19.2  案例实现与技巧 204
4.20  值传递与引用传递 205
4.20.1  案例描述 205
4.20.2  案例实现与技巧 206
4.21  索引器 207
4.21.1  案例描述 207
4.21.2  案例实现与技巧 207
4.22  ref关键字 211
4.22.1  案例描述 211
4.22.2  案例实现与技巧 211
4.23  out关键字 212
4.23.1  案例描述 212
4.23.2  案例实现与技巧 212
4.24  as运算符 213
4.24.1  案例描述 213
4.24.2  案例实现与技巧 213
4.25  is运算符 214
4.25.1  案例描述 214
4.25.2  案例实现与技巧 214
4.26  sizeof方法 215
2.26.1  案例描述 215
2.26.2  案例实现与技巧 215
4.27  Array类 216
4.27.1  案例描述 216
4.27.2  案例实现与技巧 216
4.28  ArrayList类 220
4.28.1  案例描述 220
4.28.2  案例实现与技巧 220
4.29  分部类 221
4.29.1  案例描述 221
4.29.2  案例实现与技巧 221
4.30  委托 224
4.30.1  案例描述 224
4.30.2  案例实现与技巧 224
4.31  事件 228
4.31.1  案例描述 228
4.31.2  案例实现与技巧 228
4.32  委托的使用 233
4.32.1  案例描述 233
4.32.2  案例实现与技巧 233
4.33  事件 238
4.33.1  案例描述 238
4.33.2  案例实现与技巧 239
4.34  索引器1 242
4.34.1  案例描述 242
4.34.2  案例实现与技巧 242
4.35  索引器2 244
4.35.1  案例描述 244
4.35.2  案例实现与技巧 245
4.36  线程 249
4.36.1  案例描述 249
4.36.2  案例实现与技巧 249
4.37  线程池 250
4.37.1  案例描述 250
4.37.2  案例实现与技巧 251
4.38  线程同步和交互 252
4.38.1  案例描述 252
4.38.2  案例实现与技巧 253
4.39  非托管代码 257
4.39.1  案例描述 257
4.39.2  案例实现与技巧 257
4.40  代码安全性控制 264
4.40.1  案例描述 264
4.40.2  案例实现与技巧 264
4.41  类库设计 271
4.41.1  案例描述 271
4.41.2  案例实现与技巧 271
4.42  显式接口实现 274
4.42.1  案例描述 274
4.42.2  案例实现与技巧 275
4.43  自定义属性类 277
4.43.1  案例描述 277
4.43.2  案例实现与技巧 277
4.44  条件方法 281
4.44.1  案例描述 281
4.44.2  案例实现与技巧 281
4.45  Console类增强 283
4.45.1  案例描述 283
4.45.2  案例实现与技巧 283
4.46  抽象属性 290
4.46.1  案例描述 290
4.46.2  案例实现与技巧 290
4.47  实例构造函数 293
4.47.1  案例描述 293
4.47.2  案例实现与技巧 293
4.48  静态类与静态类成员 297
4.48.1  案例描述 297
4.48.2  案例实现与技巧 297
4.49  反射：GetType 300
4.49.1  案例描述 300
4.49.2  案例实现与技巧 300
4.50  反射：晚期绑定 301
4.50.1  案例描述 301
4.50.2  案例实现与技巧 301
4.51  泛型入门 303
4.51.1  案例描述 303
4.51.2  案例实现与技巧 304
4.52  泛型类库 313
4.52.1  案例描述 313
4.52.2  案例实现与技巧 313
4.53  泛型 323
4.53.1  案例描述 323
4.53.2  案例实现与技巧 323
4.54  泛型与非泛型代码的性能
比较1 327
4.54.1  案例描述 327
4.54.2  案例实现与技巧 327
4.55  泛型与非泛型代码的性能
比较2 336
4.55.1  案例描述 336
4.55.2  案例实现与技巧 337
4.56  匿名委托1 340
4.56.1  案例描述 340
4.56.2  案例实现与技巧 340
4.57  匿名委托2 342
4.57.1  案例描述 342
4.57.2  案例实现与技巧 343
4.58  迭代器入门 345
4.58.1  案例描述 345
4.58.2  案例实现与技巧 345
4.59  可空类型入门 348
4.59.1  案例描述 348
4.59.2  案例实现与技巧 348
4.60  迭代器 349
4.60.1  案例描述 349
4.60.2  案例实现与技巧 349
4.61  可空类型 353
4.61.1  案例描述 353
4.61.2  案例实现与技巧 353
4.62  迭代器与Yield 357
4.62.1  案例描述 357
4.62.2  案例实现与技巧 357
4.63  集合类 358
4.63.1  案例描述 358
4.63.2  案例实现与技巧 358
第三部分：面向对象的设计思想
与UML
第5章  面向对象的设计思想与UML
（相关知识体系系统学习） 364
5.1  面向对象技术 364
5.1.1  面向对象的概念 364
5.1.2  面向对象分析 365
5.1.3  面向对象设计 365
5.1.4  面向对象编程 366
5.2  类及其成员 366
5.2.1  类 366
5.2.2  类成员 368
5.2.3  访问修饰符 369
5.2.4  静态类和静态类成员 370
5.3  构造函数和析构函数 372
5.3.1  构造函数 372
5.3.2  使用构造函数 372
5.3.3  实例构造函数 374
5.3.4  私有构造函数 375
5.3.5  静态构造函数 376
5.3.6  析构函数 377
5.4  方法 380
5.4.1  声明 380
5.4.2  参数 380
5.4.3  返回值 381
5.4.4  传递参数 381
5.4.5  重载 384
5.4.6  操作符重载 384
5.5  字段及属性 386
5.5.1  字段 386
5.5.2  属性 387
5.5.3  非对称访问器可访问性 389
5.6  索引器 391
5.6.1  使用索引器 391
5.6.2  属性和索引器间比较 394
5.7  嵌套类型 395
5.8  继承 396
5.8.1  继承 396
5.8.2  抽象类和密封类 396
5.8.3  多态性 398
5.8.4  Override和New使用指南 401
5.9  接口 401
5.9.1  接口及其成员 401
5.9.2  接口属性 402
5.9.3  接口中的索引器 402
5.9.4  接口实现 402
5.9.5  显式接口实现 403
5.9.6  抽象类和接口 405
5.10  分部类 406
5.11  UML基础 407
5.11.1  UML的出现 408
5.11.2  UML的内容 409
5.11.3  UML的主要特点 410
5.11.4  UML的应用领域 410
5.12  类设计器 411
5.12.1  功能 411
5.12.2  使用类关系图 411
5.12.3  设计类和类型 412
5.12.4  查看类关系图中的类型
和关系 412
5.12.5  重构类和类型 412
第6章  面向对象的设计思想与UML
（相关知识案例分析） 413
6.1  继承 413
6.1.1  案例描述 413
6.1.2  案例实现与技巧 413
6.2  base关键字 415
6.2.1  案例描述 415
6.2.2  案例实现与技巧 415
6.3  this关键字 417
6.3.1  案例描述 417
6.3.2  案例实现与技巧 417
6.4  继承、封装和多态 419
6.4.1  案例描述 419
6.4.2  案例实现与技巧 419
6.5  new关键字 425
6.5.1  案例描述 425
6.5.2  案例实现与技巧 425
6.6  接口 426
6.6.1  案例描述 426
6.6.2  案例实现与技巧 426
6.7  抽象方法与版本控制 431
6.7.1  案例描述 431
6.7.2  案例实现与技巧 431
6.8  版本控制 433
6.8.1  案例描述 433
6.8.2  案例实现与技巧 433
6.9  运算符重载1 439
6.9.1  案例描述 439
6.9.2  案例实现与技巧 439
6.10 运算符重载2 441
6.10.1  案例描述 441
6.10.2  案例实现与技巧 441