第一部分:微软.NET平台 2
第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#语言 74
第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.1 5 自定义转换 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.2 1 索引器 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 364
第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