第1章 绪论 1
1.1 Microsoft.NET技术 1
1.2 .NETFramework 2
1.3 C#语言简介 3
1.4 第一个C#应用程序 5
1.5 C#程序的基本结构 6
1.5.1 类型和方法 6
1.5.2 命名空间 7
1.5.3 程序注释 8
1.5.4 程序集 8
1.6 与用户进行交互 10
1.6.1 给程序传递参数 10
1.6.2 控制台交互 11
1.6.3 Windows窗体和WPF应用程序 13
本章小结 15
习题1 15
第2章 C#数据类型 16
2.1 值类型 16
2.1.1 整数类型 16
2.1.2 字符类型 17
2.1.3 实数类型 18
2.1.4 布尔类型 19
2.1.5 结构 19
2.1.6 枚举 21
2.2 引用类型 22
2.2.1 类 22
2.2.2 数组 25
2.2.3 字符串类型 27
2.2.4 接口 32
2.3 类型转换 35
2.3.1 数值转换 35
2.3.2 枚举转换 36
2.3.3 引用转换 37
2.3.4 装箱和拆箱转换 39
本章小结 41
习题2 41
第3章 值和方法 42
3.1 常量和变量 42
3.1.1 常量 42
3.1.2 变量 42
3.2 字段 45
3.2.1 实例字段 45
3.2.2 静态字段 45
3.2.3 常数和只读字段 47
3.3 方法 49
3.3.1 方法的定义和调用 49
3.3.2 参数类型 52
3.3.3 方法的标识与重载 56
3.3.4 可选参数和命名参数 57
3.3.5 实例方法和静态方法 59
3.4 委托与方法调用 60
3.5 成员访问限制 62
本章小结 65
习题3 65
第4章 操作符和表达式 66
4.1 操作符 66
4.2 算术表达式 67
4.2.1 基本算术运算 67
4.2.2 字符串相加 69
4.2.3 委托加减 69
4.3 自增和自减表达式 70
4.4 位运算表达式 71
4.4.1 取补运算 71
4.4.2 与、或、异或运算 72
4.4.3 移位运算 73
4.5 赋值表达式 74
4.6 关系表达式 74
4.6.1 比较运算 74
4.6.2 类型判断 76
4.7 条件逻辑表达式 77
4.8 其他特殊表达式 79
4.8.1 一元加减表达式 79
4.8.2 条件表达式 79
4.8.3 类型转换表达式 80
4.8.4 创建表达式 81
本章小结 82
习题4 82
第5章 流程控制 83
5.1 选择结构 83
5.1.1 if语句 83
5.1.2 switch语句 85
5.2 循环结构 88
5.2.1 while循环语句 88
5.2.2 do…while循环语句 89
5.2.3 for循环语句 91
5.2.4 foreach循环语句 94
5.3 跳转结构 96
5.3.1 break语句 96
5.3.2 continue语句 97
5.3.3 return语句 98
5.3.4 goto语句 99
本章小结 100
习题5 100
第6章 深入理解类 102
6.1 面向对象的方法学 102
6.2 构造函数和析构函数 103
6.2.1 构造函数 103
6.2.2 析构函数 106
6.2.3 静态构造函数 106
6.3 属性 107
6.4 索引函数 112
6.5 事件 115
6.5.1 事件发布与订阅 115
6.5.2 使用EventHandler类型 119
6.5.3 Windows控件事件 120
6.6 操作符重载 121
6.7 this关键字 124
6.8 几个常用类 127
6.8.1 Math类 127
6.8.2 StringBuilder类 128
6.8.3 ArrayList类 129
本章小结 130
习题6 131
第7章 继承和多态性 132
7.1 继承 132
7.1.1 基类和派生类 132
7.1.2 隐藏基类成员 135
7.1.3 base关键字 136
7.1.4 对象生命周期 136
7.2 多态性 138
7.2.1 成员的虚拟和重载 138
7.2.2 抽象类和抽象方法 142
7.2.3 密封类和密封方法 145
7.3 接口与继承 146
7.3.1 接口和抽象类 146
7.3.2 接口方法的实现 146
7.3.3 基于接口的多继承 150
7.4 扩展方法 154
本章小结 156
习题7 156
第8章 WPF应用程序基础 157
8.1 XAML基础 157
8.1.1 XAML元素和对象 157
8.1.2 绑定表达式 160
8.1.3 资源 162
8.1.4 样式 163
8.2 窗体布局和控件 166
8.2.1 窗体布局 166
8.2.2 控件内容模型 168
8.3 图形功能 174
8.3.1 颜色和画刷 174
8.3.2 图形绘制 176
8.3.3 几何变换 178
8.4 动画 179
8.4.1 基于定时器的动画 179
8.4.2 基于属性的动画 181
8.4.3 基于路径的动画 183
本章小结 185
习题8 185
第9章 泛型基础 186
9.1 为何使用泛型 186
9.2 泛型的定义 188
9.2.1 泛型二叉树示例 188
9.2.2 成员与类型参数 190
9.2.3 泛型的静态成员 192
9.3 多参数泛型 193
9.3.1 使用多个类型参数 193
9.3.2 类型参数与标识 195
9.4 类型限制 196
9.4.1 主要限制 197
9.4.2 次要限制 197
9.4.3 构造函数限制 198
9.5 泛型与继承 200
9.5.1 泛型继承规则 200
9.5.2 泛型二叉树排序示例 202
9.6 .NET泛型——元组和可空类型 204
9.6.1 元组 204
9.6.2 可空类型 206
本章小结 211
习题9 211
第10章 深入泛型技术 212
10.1 泛型方法 212
10.1.1 泛型方法的定义和调用 212
10.1.2 泛型方法的标识和重载 214
10.1.3 泛型扩展方法 215
10.2 泛型接口 217
10.2.1 泛型接口的定义与实现 217
10.2.2 继承中的唯一性 218
10.3 泛型集合与循环遍历 222
10.3.1 泛型集合 222
10.3.2 遍历类型 226
10.3.3 遍历器 230
10.3.4 自我遍历 234
本章小结 237
习题10 238
第11章 匿名方法和Lambda表达式 239
11.1 命名方法和匿名方法 239
11.2 使用Lambda表达式 241
11.3 泛型委托与匿名方法 244
11.3.1 使用泛型委托对象 244
11.3.2 .NET类库中的泛型委托 244
11.4 外部变量 246
11.5 匿名方法应用示例——计算器程序 248
本章小结 251
习题11 251
第12章 异常处理 252
12.1 异常和异常处理 252
12.2 C#中的异常处理结构 254
12.2.1 try…catch结构 254
12.2.2 try…catch…finally结构 255
12.2.3 try…finally结构 257
12.3 异常的传播与处理 258
12.3.1 异常传播 258
12.3.2 异常类型 259
12.4 主动引发异常 262
12.4.1 throw语句 262
12.4.2 自定义异常 264
12.5 使用异常的原则和技巧 268
本章小结 269
习题12 269
第13章 文件IO操作 270
13.1 文件系统概述 270
13.2 驱动器、目录和文件 271
13.2.1 与IO操作相关的枚举 271
13.2.2 驱动器 271
13.2.3 目录 274
13.2.4 文件 276
13.3 文件流和数据流 278
13.3.1 抽象类Stream 279
13.3.2 文件流FileStream 280
13.3.3 流的文本读写器 281
13.3.4 流的二进制读写器 282
13.3.5 常用的其他流对象 283
13.4 文件对话框 285
13.5 对象数据存取 287
本章小结 290
习题13 290
第14章 数据库访问 291
14.1 关系数据库和SQL概述 291
14.2 ADO.NET联机数据访问 293
14.2.1 连接数据库 293
14.2.2 执行数据命令 294
14.2.3 使用数据阅读器 295
14.2.4 对象数据存取 297
14.3 ADO.NET脱机数据访问 304
14.3.1 数据表和数据集 304
14.3.2 数据载入和绑定 305
14.3.3 数据适配器 306
本章小结 306
习题14 307
第15章 进程和线程 308
15.1 进程 308
15.2 线程 311
15.2.1 使用多线程 311
15.2.2 线程对象及其状态 313
15.2.3 线程同步 314
15.2.4 访问UI线程 318
15.2.5 异步操作 321
本章小结 322
习题15 322
第16章 ASP.NET应用开发 323
16.1 在Visual Studio中创建ASP.NET应用程序 323
16.2 Web程序基本对象 326
16.2.1 HTTP请求和响应对象 326
16.2.2 HTTP服务器对象 330
16.2.3 HTTP应用程序及状态 331
16.2.4 会话、视图、缓存和Cookies 332
16.3 Web服务器控件 336
16.3.1 WebControl和Control类 336
16.3.2 文本、文本框和按钮 336
16.3.3 单选框和复选框 337
16.3.4 下拉框、列表框、列表项和表格 338
16.3.5 文件上传控件 340
16.4 Web应用程序示例——列车时刻表查询 342
本章小结 347
习题16 347