第1章 面向对象程序设计概述 1
1.1 计算机程序设计语言 1
1.2 面向对象的基本概念 2
1.2.1 对象 2
1.2.2 类 2
1.2.3 消息和通信 3
1.2.4 关系 3
1.2.5 继承 4
1.2.6 多态性 4
1.2.7 接口和组件 4
1.3 面向对象的开发方法 5
1.3.1 面向对象的分析 5
1.3.2 面向对象的设计 6
1.4 案例研究——旅行社管理系统的分析与设计 7
小结 8
习题 9
第2章 C#程序和Visual Studio开发环境 10
2.1 C#语言和.NET技术简介 10
2.2 C#程序的基本结构 11
2.2.1 注释 11
2.2.2 命名空间 12
2.2.3 类型及其成员 12
2.2.4 程序主方法 13
2.2.5 程序集 13
2.3 Visual Studio开发环境 14
2.3.1 集成开发环境概述 14
2.3.2 创建控制台应用程序 15
2.3.3 创建和使用动态链接库程序 16
2.3.4 创建Windows应用程序 17
2.3.5 创建ASP.NET网站程序 18
小结 19
习题 19
第1章 面向对象程序设计概述 1
1.1 计算机程序设计语言 1
1.2 面向对象的基本概念 2
1.2.1 对象 2
1.2.2 类 2
1.2.3 消息和通信 3
1.2.4 关系 3
1.2.5 继承 4
1.2.6 多态性 4
1.2.7 接口和组件 4
1.3 面向对象的开发方法 5
1.3.1 面向对象的分析 5
1.3.2 面向对象的设计 6
1.4 案例研究——旅行社管理系统的分析与设计 7
小结 8
习题 9
第2章 C#程序和Visual Studio开发环境 10
2.1 C#语言和.NET技术简介 10
2.2 C#程序的基本结构 11
2.2.1 注释 11
2.2.2 命名空间 12
2.2.3 类型及其成员 12
2.2.4 程序主方法 13
2.2.5 程序集 13
2.3 Visual Studio开发环境 14
2.3.1 集成开发环境概述 14
2.3.2 创建控制台应用程序 15
2.3.3 创建和使用动态链接库程序 16
2.3.4 创建Windows应用程序 17
2.3.5 创建ASP.NET网站程序 18
小结 19
习题 19
第3章 C#语法基础 20
3.1 数据类型 20
3.1.1 简单值类型 20
3.1.2 复合值类型 22
3.1.3 类 24
3.1.4 数组 25
3.1.5 类型转换 28
3.2 操作符和表达式 31
3.2.1 算术操作符 31
3.2.2 自增和自减操作符 31
3.2.3 位操作符 32
3.2.4 赋值操作符 33
3.2.5 关系操作符 33
3.2.6 逻辑操作符 34
3.2.7 条件操作符 35
3.3 控制结构 35
3.3.1 选择结构 35
3.3.2 循环结构 39
3.3.3 跳转结构 42
3.4 案例研究——旅行社管理系统中的结构和枚举 44
小结 46
习题 46
第4章 类和对象 48
4.1 成员概述 48
4.1.1 成员种类 48
4.1.2 成员访问限制 49
4.1.3 静态成员和非静态成员 50
4.1.4 常量字段和只读字段 51
4.2 方法 52
4.2.1 方法的返回值 53
4.2.2 参数类型 53
4.2.3 方法的重载 56
4.3 类的特殊方法 57
4.3.1 构造函数和析构函数 57
4.3.2 属性 60
4.3.3 索引函数 62
4.3.4 操作符重载 64
4.4 this对象引用 66
4.5 常用类型 67
4.5.1 Object类 67
4.5.2 String类 67
4.5.3 StringBuilder类 73
4.5.4 Math类 74
4.5.5 DateTime结构 75
4.6 案例研究——旅行社业务类的实现 76
4.6.1 省份、城市和景点类 76
4.6.2 旅游线路和方案类 79
4.6.3 旅行团和游客类 82
小结 86
习题 86
第5章 继承和多态 88
5.1 继承 88
5.1.1 基类和派生类 88
5.1.2 隐藏基类成员 91
5.1.3 base关键字 93
5.1.4 对象的生命周期 93
5.2 多态性 95
5.2.1 虚拟方法和重载方法 95
5.2.2 抽象类和抽象方法 98
5.2.3 密封类和密封方法 101
5.3 案例研究——旅行社业务类的实现和精化 103
5.3.1 会员类 103
5.3.2 职员类 105
小结 111
习题 111
第6章 委托和事件 113
6.1 委托和方法 113
6.1.1 通过委托来封装方法 113
6.1.2 委托的加减运算 115
6.1.3 传递委托对象 115
6.1.4 Delegate类型成员 118
6.2 匿名方法 118
6.2.1 定义和调用匿名方法 118
6.2.2 外部变量 119
6.3 事件处理 120
6.3.1 委托发布和订阅 120
6.3.2 事件发布和订阅 122
6.3.3 使用EventHandler类 125
6.3.4 在事件中使用匿名方法 126
6.4 Windows控件事件概述 128
6.5 案例研究——旅行团基本事件处理 130
6.5.1 旅行团事件发布 130
6.5.2 旅行团事件处理 131
小结 134
习题 134
第7章 C# Windows应用程序基础 135
7.1 图形用户界面 135
7.1.1 图形用户界面概述 135
7.1.2 与界面有关的基础类型 136
7.2 Windows窗体、消息框和对话框 138
7.2.1 窗体 138
7.2.2 消息框 140
7.2.3 对话框 142
7.3 常用Windows控件 143
7.3.1 Control类 143
7.3.2 标签、文本框和数值框 145
7.3.3 按钮、复选框和单选按钮 148
7.3.4 组合框和列表框 149
7.3.5 容器控件 152
7.4 菜单栏、工具栏和状态栏 153
7.4.1 菜单栏 153
7.4.2 工具栏 155
7.4.3 状态栏 156
7.5 案例研究——旅行社信息窗体和登录窗体 157
7.5.1 旅行社对象及其信息窗体 157
7.5.2 系统用户及登录窗体 160
小结 162
习题 163
第8章 对象持久性——文件管理 164
8.1 文件和流 164
8.1.1 File类 164
8.1.2 使用文件流 166
8.1.3 FileInfo类 168
8.2 流的读写器 169
8.2.1 二进制读写器 169
8.2.2 文本读写器 170
8.3 文件对话框 173
8.4 基于文件的对象持久性 175
8.4.1 实现对象持久性 175
8.4.2 .NET中的自动持久性支持 178
8.5 案例研究——旅行社信息和系统用户的持久性 182
8.5.1 旅行社对象的持久性 182
8.5.2 系统用户对象的持久性 183
小结 185
习题 185
第9章 异常处理 187
9.1 异常的基本概念 187
9.2 异常处理结构 189
9.2.1 try-catch结构 189
9.2.2 try-catch-finally结构 191
9.2.3 try-finally结构 192
9.3 异常的捕获和传播 193
9.3.1 传播过程 193
9.3.2 Exception和异常信息 194
9.3.3 异常层次结构 196
9.4 自定义异常 199
9.4.1 主动引发异常 199
9.4.2 自定义异常类型 200
9.5 使用异常的指导原则 204
9.6 案例研究——旅行社管理系统中的异常处理 205
9.6.1 文件I/O异常处理 205
9.6.2 旅行社业务异常 206
小结 208
习题 208
第10章 基于接口的程序设计 210
10.1 接口的定义和使用 210
10.1.1 接口的定义 210
10.1.2 接口的实现 211
10.2 接口与多态 212
10.2.1 通过接口实现多态性 212
10.2.2 区分接口方法和对象方法 214
10.3 接口和多继承 217
10.3.1 多继承概述 217
10.3.2 基于接口的多继承 218
10.3.3 解决二义性 222
10.4 接口与集合 225
10.4.1 集合型接口及其实现 225
10.4.2 列表、队列和堆栈 226
10.4.3 自定义集合类型 228
10.5 案例研究——旅行社管理系统中的集合类型 230
10.5.1 职员列表与数据绑定 230
10.5.2 使用自定义集合 234
小结 239
习题 239
第11章 泛型程序设计 241
11.1 为什么要使用泛型 241
11.2 泛型类 243
11.2.1 泛型类的定义和使用 243
11.2.2 使用“抽象型”变量 244
11.2.3 使用多个类型参数 245
11.2.4 类型参数与标识 245
11.2.5 泛型的静态成员 247
11.3 类型限制 249
11.3.1 主要限制 249
11.3.2 次要限制 250
11.3.3 构造函数限制 251
11.4 泛型继承 251
11.5 泛型接口 254
11.5.1 泛型接口的定义 254
11.5.2 泛型接口的实现 255
11.5.3 避免二义性 258
11.5.4 泛型接口与泛型集合 259
11.6 泛型方法 264
11.6.1 泛型方法的定义和使用 264
11.6.2 泛型方法的重载 265
11.6.3 泛型方法与委托 268
11.7 案例研究—旅行社管理系统中的泛型集合 270
11.7.1 使用泛型列表ListT 270
11.7.2 泛型优先级队列 273
小结 275
习题 275
第12章 C#中的泛型模式:可空类型和迭代器 277
12.1 可空类型 277
12.1.1 值类型与null值 277
12.1.2 使用可空类型 280
12.1.3 可空类型转换 284
12.1.4 操作符提升 285
12.2 遍历和迭代 286
12.2.1 可遍历类型和接口 286
12.2.2 迭代器 288
12.2.3 迭代器代码 291
12.2.4 使用多个迭代器 293
12.2.5 自我迭代 295
12.3 案例研究——旅行社管理系统中的可空值与迭代器 297
12.3.1 旅行社业务对象中的可空值 297
12.3.2 遍历游客集合 298
小结 299
习题 300
第13章 C# Windows应用程序进阶 301
13.1 高级Windows控件 301
13.1.1 时间和日期控件 301
13.1.2 滑块、进度条和滚动条 304
13.1.3 图片控件 306
13.1.4 列表视图和树形视图 308
13.1.5 数据网格控件 313
13.2 绘图和打印 315
13.2.1 图形设备、画笔和画刷 315
13.2.2 打印 320
13.3 案例研究——完善旅行社管理系统 322
13.3.1 职员信息显示与打印 322
13.3.2 构建系统主界面 323
13.3.3 新建、修改和删除业务对象 325
小结 329
习题 329
第14章 C# Web应用程序基础 331
14.1 ASP.NET技术概述 331
14.2 ASP.NET Web窗体和基本对象 332
14.2.1 Web窗体 332
14.2.2 请求和响应 333
14.2.3 服务器对象 336
14.2.4 应用程序、会话、视图和缓存 337
14.3 HTML控件 339
14.3.1 从HTML元素到HTML控件 339
14.3.2 HtmlControl类型 340
14.3.3 HtmlAnchor、HtmlTextArea和HtmlSelect控件 342
14.3.4 HtmlTable控件 344
14.3.5 HtmlInputControl控件 346
14.4 Web服务器控件 349
14.4.1 标准窗体控件 350
14.4.2 验证控件 355
14.5 案例研究——旅游信息查询网站 356
14.5.1 网站首页 356
14.5.2 旅行团方案页面 358
14.5.3 景点信息页面 359
14.5.4 景点导航 360
小结 361
习题 361
第15章 对象持久性——访问关系数据库 362
15.1 关系数据库概述 362
15.1.1 关系表和对象 362
15.1.2 关系数据库语言SQL 364
15.2 ADO.NET数据访问模型 367
15.2.1 非连接类型 367
15.2.2 连接类型 372
15.3 案例研究——旅行社管理系统的数据库解决方案 376
15.3.1 数据表格设计 376
15.3.2 数据库连接管理 377
15.3.3 实现业务对象的数据库存取 378
15.3.4 终端数据访问 382
小结 383
习题 383
参考文献 384