本书不是那种大而全、号称从入门到精通,三个月速成编程高手那样如“终南捷径”般的红宝书。关键的一点是,如何平衡好“专”与“博”之间的关系?对于技术作家而言,此难题不亚于理解技术本身的难度。然而,金旭亮总能处理得游刃有余。这不得不说,作者的职业起到了关键的作用。“师者,传道授业解惑也。”这是为人师者的根本。教师的任务是为学生解惑,不能故作高深,而必须循循善诱,以深入浅出的方式帮助学生高效率地理解新技术与新知识。这些技能正是成为优秀技术作家的前提。
阅读本书绝对不能浅尝辄止,建议是尽可能地吃透它,不要放过任何你认为无法理解,或者不会用到的特性。正如你不应该将.NET简单地看做是一门工具。技术在变化中保持常新,开发人员若要把握变化的脉络,就必须看穿技术的本质,抓住其设计的思想,它才可能是不变的。
本书《基础篇》以面向对象理论为指导,从.NET平台的各项技术中精选出一些亮点进行深入的剖析和讲解,并展示出它们在实际开发中的具体应用实例,不仅让读者能“知其然”,而且能“知其所以然”。
本书适合于拥有1-2年开发经验的读者,阅读本书有助于读者进一步地提升自己的开发能力,拓展和加深对.NET平台技术的认识,最终成长为一名优秀的.NET软件工程师。
掌握本书《基础篇》所介绍的内容,是进一步阅读本书《应用篇》的前提。
第1篇 面向对象技术的.NET视角 1
第1章 .NET面向对象编程基础 3
1.1 .NET是什么? 3
1.2 初探.NET程序运行原理 10
1.3 类和对象 16
1.4 了解编程语言的发展趋势 23
第2章 数据类型趣谈 29
2.1 数值类型的使用 29
2.2 用好引用类型的变量 32
2.3 “值类型变量”的故事 37
2.4 说不尽的字符串 40
2.5 可取空值的“值类型” 44
2.6 数据类型的模板化——泛型 48
第3章 字段、方法与属性漫谈 53
3.1 字段与属性的初始化方式汇总 54
3.2 让一个方法返回多个结果 58
3.3 命名参数与可选参数 60
3.4 运算符重载 63
3.5 分部类与分部方法 65
3.6 奇特的扩展方法 69
3.7 类和对象的CLR内存布局 72
3.8 剖析WPF依赖属性 76
第4章 继承与多态 84
4.1 方法的重载、隐藏与重写辨析 84
4.2 通过实例理解多态 90
4.3 多态编程的CLR探索之旅 95
4.4 协变与逆变 104
第5章 对象的生生死死 107
5.1 构造函数那点事 107
5.2 Singleton设计模式的讨论 112
5.3 对象的延迟创建 117
5.4 对象的声明式创建 120
5.5 与对象销毁相关的话题 124
第6章 异常捕获与处理 131
6.1 .NET异常处理基础 132
6.2 应对程序运行时出现的异常 136
6.3 CLR异常处理机制探秘 142
6.4 实际开发中有关异常处理的建议 148
第7章 程序集 151
7.1 程序集的基础知识 151
7.2 程序集与组件化开发 156
7.3 WPF应用程序的结构与运行原理 160
7.4 探索ASP.NET页面程序集 161
7.5 Silverlight项目结构剖析 163
7.6 互操作程序集与本地类型 167
第2篇 委托构建的世界 175
第8章 神奇的委托 177
8.1 委托的概念与使用 177
8.2 深入探索委托技术内幕 181
8.3 使用泛型委托 187
8.4 匿名方法与Lambda表达式 191
8.5 掌握回调的编程技巧 195
第9章 事件及事件驱动 200
9.1 .NET事件处理机制的剖析与应用 200
9.2 定义自己的事件 206
9.3 WPF中的路由事件 212
第10章 异步编程模式 217
10.1 程序的同步执行和异步执行 217
10.2 基于委托的异步编程模式 219
10.3 等待异步调用的完成 222
10.4 异步调用中的异常与任务同步 224
10.5 实现IAsyncResult异步调用模式的组件 227
10.6 基于事件的异步调用模式 229
10.7 异步编程小结 234
第3篇 对象的精彩演出 235
第11章 对象集合与LINQ 237
11.1 设计可比较大小的对象 237
11.2 并不简单的对象集合——“数组” 243
11.3 针对对象集合的标准查询 253
11.4 伟大的技术创新——LINQ 256
11.5 掌握LINQ查询表达式的编写技巧 259
11.6 对象集合的分组与连接 263
第12章 对象组合与数据结构的应用 268
12.1 对象的组合方式 269
12.2 用对象组合实现可视化界面的嵌套 272
12.3 自引用类与数据结构的面向对象实现 277
12.4 神奇的数据结构——树 279
第13章 对象的复制与序列化 288
13.1 对象的浅复制与深复制 288
13.2 对象序列化 291
13.3 对象序列化技术应用实例 298
第14章 对象间的协作与信息交换 305
14.1 对象间信息交换的基本方式 305
14.2 多对象协作与信息交换 311
14.3 应用程序向导框架的设计与实现 316
14.4 ASP.NET HTTP处理管线中的对象协作 322