第1篇 面向对象技术的.NET视角 1
第1章 .NFT面向对象编程基础 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.NETHTTP处理管线中的对象协作 322
附录A 面向对象的汇编语言——IL基础教程 329
索引 339