第1章 编写第一个面向对象程序 1
1.1 阅读器:您的第一个面向对象程序 1
1.1.1 设计类 2
1.1.2 创建Book类 4
1.1.3 在应用程序中使用Book类 10
1.2 使用类视图 14
1.3 创建ReadBooks程序 19
1.3.1 创建用户界面 19
1.3.2 添加代码 19
1.4 本章小结 22
第2章 用构造函数创建类实例 24
2.1 构造函数 24
2.2 阅读器的另一种实现方案 25
2.2.1 在Book类中创建构造函数 25
2.2.2 使用构造函数 29
2.3 引用类型和值类型 32
2.4 了解数组的声明 34
2.5 本章小结 34
第3章 创建字段和属性 36
3.1 属性设计考虑事项 37
3.2 代码分析器 37
3.2.1 设计SourceFile类 38
3.2.2 创建SourceFile类 39
3.2.3 向用户界面添加代码 46
3.2.4 测试程序 49
3.3 代码分析器的另一种实现 49
3.3.1 创建AClass类 50
3.3.2 创建用户界面 55
3.3.3 测试程序 58
3.4 本章小结 58
第4章 使用方法 61
4.1 纸牌 61
4.1.1 创建Card类 63
4.1.2 创建Hand类 66
4.1.3 测试Hand类 72
4.1.4 创建Deck类 75
4.1.5 编写测试程序 81
4.2 本章小结 89
第5章 用继承来创建专用类 92
5.1 继承简介 92
5.2 BankAccount示例 93
5.2.1 创建基类BankAccount类 94
5.2.2 创建SavingsAccount派生类 97
5.2.3 创建CheckingAccount派生类 104
5.2.4 多态地使用派生类 107
5.3 从控件继承:RoundButton类 112
5.3.1 创建RoundButton类 112
5.3.2 重写OnPaint方法 113
5.3.3 使用类 114
5.4 本章小结 116
第6章 将基类设计为抽象类 120
6.1 抽象类 120
6.2 重新创建BankAccount类 121
6.2.1 用统一建模语言来描述类的设计 121
6.2.2 创建抽象类 123
6.2.3 编写SavingsAccount类 125
6.2.4 编写CheckingAccount类 128
6.2.5 测试类 131
6.3 类型化集合类 132
6.3.1 重新设计Library类 133
6.3.2 创建类 134
6.3.3 重新创建Library类 137
6.3.4 测试类 138
6.4 本章小结 141
第7章 用事件和异常响应更改 143
7.1 事件驱动应用程序示例:火轨游戏 143
7.1.1 实现Track类 145
7.1.2 创建CaughtonFire事件 150
7.1.3 实现Train类 155
7.1.4 实现用户界面 158
7.2 不用设计器设置事件方法 161
7.3 异常 164
7.3.1 产生异常 164
7.3.2 编写异常类 165
7.4 本章小结 170
第8章 用组件构造程序 173
8.1 Memory游戏 173
8.2 游戏类库 175
8.2.1 创建GamesLibrary项目 175
8.2.2 更改命名空间 175
8.2.3 创建Card控件 176
8.2.4 创建Memory游戏项目 183
8.2.5 创建Deck组件 185
8.3 Memory游戏应用程序 203
8.3.1 将LotsOfFun.Games控件添加到工具箱 203
8.3.2 创建用户界面 204
8.3.3 编写游戏运行过程代码 204
8.4 本章小结 205
第9章 通过接口提供服务 207
9.1 IMoveable接口 207
9.1.1 定义Imoveable接口 208
9.1.2 在Pawn类中实现IMoveable接日 210
9.1.3 测试IMoveable接口 213
9.2 .NET框架中的接口 214
9.2.1 实现IComparable接口 215
9.2.2 实现IEnumerable接口和Ienumerator接口 219
9.3 接口的另外两个用途 231
9.4 本章小结 232
第10章 通过多态实现类的互换 234
10.1 图案制作程序 234
10.2 图案制作程序的设计 235
10.3 基类 237
10.3.1 创建Pattern类 237
10.3.2 创建PatternEditor类 238
10.4 派生类 239
10.4.1 创建DrawnPattern类 239
10.4.2 创建DrawnPattemEditor类 242
10.4.3 创建BitmapPattern类 246
10.4.4 创建BitmapPatternEditor类 247
10.5 用户界面 250
10.5.1 创建用户界面元素 251
10.5.2 创建模板实例 253
10.5.3 编辑和保存新图案 254
10.5.4 测试应用程序 256
10.6 本章小结 256
第11章 使用共享成员和静态成员 258
11.1 共享成员和静态成员 258
11.2 SortablePoint类 259
11.2.1 创建SortablePoint类 259
11.2.2 测试SortablePoint类 263
11.3 用共享或静态成员代化 Card类 266
11.3.1 实现Card类 266
11.3.2 测试Card类 270
11.4 单件模式 272
11.4.1 实现单件模式 272
11.4.2 测试Singleton类 274
11.5 设计注意事项 276
11.6 本章小结 277
第12章 Visual C#运算符重载 279
12.1 向量简介 279
12.2 向量代数应用程序 280
12.2.1 实现Vector类 281
12.2.2 实现向量代数应用程序 285
12.3 本章小结 290
第13章 保存实例数据 292
13.1 序列化 292
13.1.1 实现二进制序列化 293
13.1.2 实现XML序列化 305
13.2 数据集 308
13.2.1 实现非类型化数据集 309
13.2.2 实现类型化数据集 312
13.3 本章小结 317
第14章 通过设计降低开发的复杂度 318
14.1 .NET设计准则 318
14.1.1 对象命名 319
14.1.2 设计类成员 321
14.2 重构 325
14.3 设计模式 329
14.3.1 观察者模式 330
14.3.2 事件处理和观察者模式 330
14.4 本章小结 331