第1章 面向对象程序设计概述 1
1.1计算机程序设计语言 1
1.2面向对象的基本概念 2
1.2.1对象 2
1.2.2类 2
1.2.3消息和通信 2
1.2.4关系 3
1.2.5继承 3
1.2.6多态性 4
1.2.7接口和组件 4
1.3面向对象的开发方法 5
1.3.1面向对象的分析 5
1.3.2面向对象的设计 5
1.4案例研究——旅行社管理系统的分析与设计 6
1.5小结 8
1.6习题 8
第2章 C#和Visual Studio开发环境基础 9
2.1 C#语言和.NET技术简介 9
2.2 C#程序的基本结构 10
2.2.1注释 10
2.2.2命名空间 11
2.2.3类型及其成员 11
2.2.4程序主方法 12
2.2.5程序集 12
2.3 Visual Studio开发环境 13
2.3.1集成开发环境概述 13
2.3.2创建控制台应用程序 14
2.3.3创建和使用动态链接库程序 15
2.3.4创建Windows应用程序 15
2.3.5创建ASP.NET应用程序 16
2.4小结 18
2.5习题 18
第3章 C#语法基础 19
3.1数据类型 19
3.1.1简单值类型 19
3.1.2复合值类型 21
3.1.3类 23
3.1.4数组 25
3.1.5类型转换 27
3.2操作符和表达式 30
3.2.1算术操作符 30
3.2.2自增和自减操作符 31
3.2.3位操作符 31
3.2.4赋值操作符 32
3.2.5关系操作符 33
3.2.6逻辑操作符 33
3.2.7条件操作符 34
3.3控制结构 35
3.3.1选择结构 35
3.3.2循环结构 38
3.3.3跳转结构 42
3.4案例研究——旅行社管理系统中结构和枚举 44
3.5小结 46
3.6习题 46
第4章 类和对象 47
4.1成员概述 47
4.1.1成员种类 47
4.1.2成员访问限制 48
4.1.3静态成员和非静态成员 49
4.1.4常量字段和只读字段 50
4.2方法 51
4.2.1方法的返回值 52
4.2.2参数类型 52
4.2.3方法的重载 55
4.3类的特殊方法 56
4.3.1构造函数和析构函数 56
4.3.2属性 59
4.3.3索引函数 61
4.3.4操作符重载 62
4.4 this对象引用 65
4.5常用类型 65
4.5.1 Object类 65
4.5.2 String类 66
4.5.3 StringBuilder类 72
4.5.4 Math类 72
4.5.5 DateTime结构 73
4.6案例研究——旅行社业务类的实现 74
4.6.1省份、城市和景点类 74
4.6.2旅游线路和方案类 76
4.6.3旅行团和游客类 78
4.7小结 81
4.8习题 81
第5章 继承和多态 82
5.1继承 82
5.1.1基类和派生类 82
5.1.2隐藏基类成员 84
5.1.3 base关键字 86
5.1.4对象的生命周期 87
5.2多态性 89
5.2.1虚拟方法和重载方法 89
5.2.2抽象类和抽象方法 92
5.2.3密封类和密封方法 94
5.3案例研究——旅行社业务类的实现和精化 97
5.3.1会员类 97
5.3.2职员类 98
5.4小结 103
5.5习题 103
第6章 委托和事件 105
6.1委托和方法 105
6.1.1通过委托来封装方法 105
6.1.2委托的加减运算 107
6.1.3传递委托对象 107
6.1.4 Delegate类型成员 109
6.2匿名方法和Lambda表达式 110
6.2.1匿名方法 110
6.2.2 Lambda表达式 111
6.2.3外部变量 111
6.3事件处理 112
6.3.1委托发布和订阅 112
6.3.2事件发布和订阅 114
6.3.3使用EventHandler类 117
6.3.4在事件中使用匿名方法 118
6.4 Windows控件事件概述 120
6.5案例研究——旅行团基本事件处理 122
6.5.1旅行团事件发布 122
6.5.2旅行团事件处理 123
6.6小结 126
6.7习题 126
第7章 Windows Form应用程序设计 127
7.1图形用户界面概述 127
7.2位置、坐标、颜色和字体 128
7.2.1 Size和SizeF结构 128
7.2.2 Point和PointF结构 128
7.2.3 Color结构 129
7.2.4 Font和FontFamily类 129
7.3窗体、消息框和对话框 130
7.3.1窗体 130
7.3.2消息框 132
7.3.3对话框 134
7.4常用Windows控件 135
7.4.1 Control类 135
7.4.2标签、文本框和数值框 137
7.4.3按钮、复选框和单选框 139
7.4.4组合框和列表框 141
7.4.5日历控件 143
7.4.6滑块、进度条和滚动条 144
7.4.7图片框控件 145
7.4.8容器控件 146
7.4.9列表视图和树型视图 147
7.5菜单栏、工具栏和状态栏 151
7.5.1菜单栏 151
7.5.2工具栏 152
7.5.3状态栏 153
7.6案例研究——旅行社信息窗体和登录窗体 154
7.6.1旅行社对象及其信息窗体 154
7.6.2系统用户及登录窗体 156
7.7小结 158
7.8习题 158
第8章 对象持久性——文件管理 159
8.1文件和流 159
8.1.1 File类 159
8.1.2使用文件流 161
8.1.3 Filelnfo类 163
8.2流的读写器 164
8.2.1二进制读写器 164
8.2.2文本读写器 165
8.3文件对话框 168
8.4基于文件的对象持久性 170
8.4.1实现对象持久性 170
8.4.2 .NET中的自动持久性支持 172
8.5案例研究——旅行社信息和系统用户的持久性 177
8.5.1旅行社对象的持久性 177
8.5.2系统用户对象的持久性 177
8.6小结 180
8.7习题 180
第9章 异常处理 181
9.1异常的基本概念 181
9.2异常处理结构 183
9.2.1 try-catch结构 183
9.2.2 try-catch-fiinally结构 184
9.2.3 try-fiinally结构 186
9.3异常的捕获和传播 187
9.3.1传播过程 187
9.3.2 Exception和异常信息 188
9.3.3异常层次结构 190
9.4自定义异常 192
9.4.1主动引发异常 192
9.4.2自定义异常类型 193
9.5使用异常的指导原则 196
9.6案例研究——旅行社管理系统中的异常处理 197
9.6.1文件1/O异常处理 198
9.6.2旅行社业务异常 199
9.7小结 201
9.8习题 201
第10章 基于接口的程序设计 202
10.1接口的定义和使用 202
10.1.1接口的定义 202
10.1.2接口的实现 203
10.2接口与多态 204
10.2.1通过接口实现多态性 204
10.2.2区分接口方法和对象方法 206
10.3接口和多继承 208
10.3.1多继承概述 208
10.3.2基于接口的多继承 209
10.3.3解决二义性 213
10.4接口与集合 216
10.4.1集合型接口及其实现 216
10.4.2列表、队列和堆栈 217
10.4.3自定义集合类型 219
10.5案例研究——旅行社管理系统中的集合类型 221
10.5.1职员列表与数据绑定 221
10.5.2使用自定义集合 224
10.6小结 229
10.7习题 230
第11章 泛型程序设计 231
11.1为什么要使用泛型 231
11.2泛型类 232
11.2.1泛型类的定义和使用 232
11.2.2使用“抽象型”变量 234
11.2.3使用多个类型参数 235
11.2.4类型参数与标识 235
11.2.5泛型的静态成员 237
11.3类型限制 239
11.3.1主要限制 239
11.3.2次要限制 239
11.3.3构造函数限制 240
11.4泛型继承 240
11.5泛型接口 243
11.5.1泛型接口的定义 243
11.5.2泛型接口的实现 244
11.5.3避免二义性 247
11.5.4泛型接口与泛型集合 248
11.6泛型方法 252
11.6.1泛型方法的定义和使用 252
11.6.2泛型方法的重载 254
11.6.3泛型方法与委托 254
11.7案例研究——旅行社管理系统中的泛型集合 256
11.7.1使用泛型列表List〈T〉 256
11.7.2泛型优先级队列 258
11.8小结 259
11.9习题 260
第12章 C#中的泛型模式:可空类型和迭代器 261
12.1可空类型 261
12.1.1可空类型:值类型+nulL 261
12.1.2可空类型转换 266
12.1.3操作符提升 266
12.2遍历和迭代 267
12.2.1可遍历类型和接口 267
12.2.2迭代器 270
12.2.3迭代器代码 273
12.2.4使用多个迭代器 274
12.2.5自我迭代 276
12.3案例研究——旅行社管理系统中的可空值与迭代器 279
12.3.1旅行社业务对象中的可空值 279
12.3.2遍历游客集合 280
12.4小结 281
12.5习题 281
第13章 WPF应用程序设计 282
13.1 WPF窗体和控件 282
13.1.1创建一个WPF程序 282
13.1.2窗体和布局 284
13.1.3控件内容模型 286
13.1.4文本框控件 290
13.1.5范围控件 291
13.2使用XAML设计界面 292
13.2.1 XAML文档和元素 292
13.2.2元素属性和事件 293
13.2.3资源和样式 295
13.3绘制图形 298
13.3.1画刷 298
13.3.2形状 300
13.3.3图形变换 303
13.3.4打印输出 304
13.4动画和多媒体 305
13.4.1基于属性的动画 305
13.4.2故事板和事件触发器 307
13.4.3基于路径的动画 309
13.4.4播放多媒体文件 310
13.5案例研究——旅行社管理系统的WPF界面 312
13.5.1构建系统主界面 312
13.5.2新建、修改和删除业务对象 314
13.5.3信息打印输出 316
13.5.4 Windows Form集成 317
13.6小结 318
13.7习题 318
第14章 C# Web应用程序设计 319
14.1 ASP.NET技术概述 319
14.2 ASP.NET Web窗体和基本对象 320
14.2.1 Web窗体 320
14.2.2请求和响应 321
14.2.3服务器对象 324
14.2.4应用程序、会话、视图和缓存 325
14.3 HTML控件 327
14.3.1从HTML元素到HTML控件 327
14.3.2 HtmlControl类型 328
14.3.3 HtmlAnchor、 HtmlTextArea和HtmlSelect控件 329
14.3.4 HtmlTable控件 331
14.3.5 HtmlInputControl控件 333
14.4 Web服务器控件 335
14.4.1标准窗体控件 335
14.4.2验证控件 340
14.5案例研究——旅游信息查询网站 341
14.5.1网站母版页 341
14.5.2网站首页与线路浏览 343
14.5.3旅行团方案页面 346
14.5.4景点信息页面 347
14.6小结 348
14.7习题 348
第15章 对象持久性——数据库存取和LINQ查询 349
15.1关系数据库概述 349
15.1.1关系表和对象 349
15.1.2关系数据库语言SQL 351
15.2 ADO .NET数据访问模型 354
15.2.1非连接类型 354
15.2.2连接类型 358
15.3 LINQ对象数据查询 362
15.4案例研究——旅行社管理系统的数据库解决方案 366
15.4.1数据表格设计 366
15.4.2数据库连接管理 367
15.4.3实现业务对象的数据库存取 368
15.4.4终端数据访问 372
15.5小结 374
15.6习题 374
第16章 Silverlight客户端应用程序 375
16.1 Silverlight应用开发基础 375
16.2 Silverlight程序架构 376
16.3处理键盘和鼠标事件 379
16.3.1处理键盘事件 379
16.3.2处理鼠标事件 380
16.4模板和自定义控件 381
16.4.1使用控件模板 381
16.4.2创建自定义控件 383
16.5案例研究——使用必应地图服务 386
16.5.1开发前的准备工作 386
16.5.2创建程序并添加必应地图控件 387
16.5.3地图、图层与图片系统 388
16.5.4旅游景点地图导航 390
16.6小结 394
16.7习题 394