目 录
第1篇 C# 3.0基础知识
第1章 Visual Studio 2008简介 2
1.1 Visual Studio发展历史 2
1.2 Visual Studio 2008介绍 3
1.2.1 主窗体介绍 3
1.2.2 “工具箱”视图 5
1.2.3 “属性管理器”视图 6
1.2.4 “错误列表”视图 7
1.3 应用程序向导 8
1.4 创建控制台应用程序 9
1.4.1 创建控制台应用程序——
HelloWorld 9
1.4.2 HelloWorld程序结构 10
1.4.3 HelloWorld编码和运行 10
1.4.4 调试HelloWorld程序 11
1.5 小结 12
第2章 C# 3.0语言基础 14
2.1 .NET Framework 3.5介绍 14
2.1.1 .NET Framework框架 14
2.1.2 公共语言运行库 15
2.1.3 .NET Framework类库 16
2.1.4 .NET 3.5重要扩展 17
2.2 语言概述 18
2.2.1 C#语言特点 18
2.2.2 C#应用程序的生成 19
2.3 变量 20
2.3.1 变量和常量 20
2.3.2 数值 22
2.3.3 字符和字符串 25
2.3.4 枚举类型 27
2.3.5 数组 29
2.4 运算符 31
2.4.1 运算符和表达式 32
2.4.2 赋值运算符 32
2.4.3 算术运算符 33
2.4.4 关系运算符 34
2.4.5 逻辑运算符 35
2.4.6 位运算符 36
2.5 常用语句 37
2.5.1 语句 37
2.5.2 条件语句 38
2.5.3 选择语句 39
2.5.4 循环语句 41
2.6 函数 44
2.6.1 函数定义 44
2.6.2 函数调用 45
2.6.3 值传递和引用传递 46
2.6.4 Main()函数 47
2.7 代码注释 48
2.7.1 常见注释 48
2.7.2 XML注释 49
2.8 小结 50
第3章 C# 3.0实现面向对象 51
3.1 什么是面向对象 51
3.2 类 52
3.2.1 类和对象 52
3.2.2 类的字段 53
3.2.3 类的属性 54
3.2.4 类的方法 57
3.2.5 类的构造函数 58
3.2.6 成员可访问性 60
3.2.7 类索引器 60
3.2.8 静态成员 63
3.3 类继承 65
3.3.1 类的继承 65
3.3.2 构造顺序 66
3.3.3 重载类成员 67
3.3.4 覆盖类成员 69
3.3.5 抽象类 71
3.3.6 密封类 71
3.3.7 Object类 72
3.4 委托和事件 72
3.4.1 定义委托 72
3.4.2 定义类的事件 74
3.4.3 引发类的事件 75
3.4.4 注册和注销事件 75
3.5 接口 77
3.5.1 定义接口 77
3.5.2 实现接口 78
3.5.3 实现多重接口 81
3.6 异常处理 83
3.6.1 什么是异常 83
3.6.2 捕获异常 84
3.6.3 抛出异常 85
3.6.4 Exception类 86
3.6.5 自定义异常 88
3.6.6 多重捕获异常 89
3.7 其他特性 91
3.7.1 匿名类型 91
3.7.2 扩展方法 92
3.8 命名空间 94
3.8.1 什么是命名空间 94
3.8.2 自定义命名空间 95
3.9 小结 96
第4章 C#集合类 97
4.1 C#集合类 97
4.2 ArrayList动态数组 97
4.2.1 ArrayList的成员 98
4.2.2 创建动态数组 99
4.2.3 访问动态数组元素 100
4.2.4 获取动态数组属性 101
4.2.5 添加动态数组元素 103
4.2.6 删除动态数组元素 104
4.2.7 排序和定位动态数组元素 105
4.3 List列表 107
4.3.1 创建列表 108
4.3.2 访问列表的元素 108
4.3.3 获取列表属性 109
4.3.4 添加列表元素 110
4.3.5 删除列表元素 111
4.3.6 排序和定位列表元素 112
4.3.7 搜索符合条件的列表元素 114
4.4 Hashtable哈希表 116
4.4.1 Hashtable成员 116
4.4.2 创建一个哈希表 117
4.4.3 访问哈希表元素 117
4.4.4 获取哈希表属性 118
4.4.5 添加数据到哈希表 118
4.4.6 删除哈希表元素 119
4.4.7 遍历哈希表 120
4.5 Dictionary字典 121
4.5.1 创建一个字典 121
4.5.2 访问字典元素 122
4.5.3 获取字典元素个数 122
4.5.4 添加数据到字典 123
4.5.5 删除字典元素 123
4.5.6 遍历字典 124
4.6 小结 126
第2篇 窗体常见应用
第5章 Windows窗体控件 128
5.1 Windows窗体程序介绍 128
5.1.1 什么是Windows窗体程序 128
5.1.2 Windows窗体命名空间 129
5.2 创建窗体应用程序 130
5.2.1 窗体应用程序——
SimpleForm 130
5.2.2 修改窗体属性 131
5.2.3 响应窗体事件 133
5.2.4 添加窗体控件 135
5.2.5 响应控件事件 136
5.3 按钮类控件 137
5.3.1 用Label控件显示文本 137
5.3.2 用Button控件实现按钮 138
5.3.3 用CheckBox控件实现
多选 140
5.3.4 用RadioButton控件实现
单选 141
5.4 文本输入控件 143
5.4.1 用TextBox控件输入文本 143
5.4.2 用MaskedTextBox控件输入
特定格式文本 145
5.5 列表类控件 146
5.5.1 用ComboBox控件实现下拉
列表框 146
5.5.2 用ListBox控件实现列表
界面 148
5.6 容器类控件 151
5.6.1 用GroupBox控件进行
控件分组 151
5.6.2 用Panel控件实现界面
切换 152
5.6.3 用TabControl控件实现
选项卡 152
5.7 菜单\工具栏\状态栏 153
5.7.1 用MenuStrip控件实现
主菜单 154
5.7.2 用ContextMenuStrip控件
实现上下文菜单 155
5.7.3 用ToolStrip控件实现
工具栏 155
5.7.4 用StatusStrip控件实现
状态栏 156
5.8 其他控件 157
5.8.1 日期时间控件 157
5.8.2 TreeView控件 158
5.8.3 其他Windows控件 159
5.9 小结 159
第6章 Windows 窗体——Form 160
6.1 Windows窗体介绍 160
6.1.1 什么是Windows窗体 160
6.1.2 Windows窗体类——Form 161
6.2 设计Windows窗体 163
6.2.1 设计主窗体——FrmEditor 163
6.2.2 设计“关于”对话框——
AboutDlg 165
6.2.3 设计“属性”对话框——
PropDlg 167
6.3 处理窗体重要事件 168
6.3.1 通过Load事件初始化
界面和数据 168
6.3.2 通过FormClosing事件
退出前处理 170
6.3.3 其他Form事件的常见
用途 172
6.4 处理窗体中控件事件 172
6.4.1 处理“新建”事件 172
6.4.2 处理“打开”事件 173
6.4.3 处理“保存”事件 174
6.4.4 处理“另存为”事件 176
6.4.5 处理“退出”事件 177
6.4.6 处理“关于”事件 177
6.5 窗体之间的数据交互 178
6.5.1 将参数传递到弹出窗体 178
6.5.2 从弹出窗体取得新参数 180
6.5.3 使用PropDlg对话框
设置参数 181
6.6 使用.NET类库通用对话框 182
6.6.1 使用MessageBox类显示
“消息提示”对话框 182
6.6.2 使用OpenFileDialog类显示
“打开文件”对话框 184
6.6.3 使用SaveFileDialog类显示
“保存文件”对话框 184
6.6.4 使用ColorDialog类显示
“颜色选择”对话框 185
6.6.5 使用FontDialog类显示
“字体选择”对话框 186
6.7 小结 186
第7章 Windows多文档窗体程序 188
7.1 多文档窗体程序介绍 188
7.1.1 什么是多文档窗体应用
程序 188
7.1.2 .NET类库中如何实现多
文档窗体 189
7.2 设计多文档窗体 189
7.2.1 通过向导创建多文档父
窗体 190
7.2.2 设计父窗体——FrmMain 190
7.2.3 设计子窗体——FrmEditor 192
7.2.4 添加现有窗体——
AboutDlg、PropDlg 193
7.3 子窗体和父窗体的数据交互 194
7.3.1 通过子窗体属性进行数据
交互 194
7.3.2 通过子窗体方法进行数据
交互 195
7.3.3 通过子窗体事件进行数据
交互 197
7.4 管理子窗体 198
7.4.1 显示子窗体 198
7.4.2 关闭子窗体 199
7.4.3 遍历子窗体 199
7.4.4 排列子窗体 200
7.5 小结 202
第8章 自定义控件开发 203
8.1 自定义控件介绍 203
8.1.1 窗体控件的基础——
Control类 203
8.1.2 自定义控件的分类 204
8.2 扩展控件——IntTextBox
实现 205
8.2.1 从TextBox控件派生
IntTextBox控件 205
8.2.2 实现IntTextBox非法字符
屏蔽 206
8.2.3 实现IntTextBox其他功能 207
8.2.4 添加IntTextBox控件 210
8.2.5 使用IntTextBox控件 212
8.3 用户控件——NameUC实现 213
8.3.1 新建NameUC控件 213
8.3.2 实现NameUC控件 214
8.3.3 添加NameUC控件 217
8.3.4 使用NameUC控件 218
8.4 自定义控件组合——CaculatorUC
实现 218
8.4.1 新建自定义控件——
CaculatorUC 218
8.4.2 为CaculatorUC控件添加
CaculateFinished事件 219
8.4.3 实现CaculatorUC控件 220
8.5 小结 224
第9章 WPF开发实例 225
9.1 WPF简介 225
9.1.1 什么是WPF 225
9.1.2 WPF开发模式 227
9.1.3 WPF应用程序 228
9.2 WPF独立应用程序 229
9.2.1 创建WPF独立应用程序 229
9.2.2 WPF窗体介绍 231
9.2.3 修改WPF窗体外观 232
9.2.4 使用WPF窗体事件 234
9.3 WPF控件 237
9.3.1 创建控件 237
9.3.2 设置控件外观 239
9.3.3 使用控件事件 241
9.4 WPF浏览器应用程序 244
9.4.1 创建WPF浏览器应用
程序 244
9.4.2 页面导航 246
9.5 WPF实例——TextReader 248
9.5.1 TextReader界面设计 249
9.5.2 显示子窗体 251
9.5.3 关闭窗体 252
9.5.4 使用TreeView控件 252
9.5.5 使用RichTextBox控件 258
9.6 小结 261
第10章 文件操作和管理 262
10.1 IO访问命名空间 262
10.2 使用File、FileInfo类进行文件
管理 262
10.2.1 创建自动删除文件 263
10.2.2 创建文件并获取新文件
对象 264
10.2.3 一次性复制文件操作 265
10.2.4 复制文件并获取新文件
对象 266
10.2.5 移动和重命名文件 267
10.2.6 判断文件是否存在 268
10.2.7 获取文件的属性 269
10.2.8 删除文件 271
10.3 使用Directory、DirectoryInfo
进行文件夹管理 271
10.3.1 创建目录 272
10.3.2 删除目录 272
10.3.3 移动和重命名目录 273
10.3.4 遍历目录文件和子目录 274
10.4 使用文件流进行文件读写 276
10.4.1 什么是文件流 276
10.4.2 二进制文件写入 277
10.4.3 二进制文件读取 278
10.4.4 文本文件写入 280
10.4.5 文本文件读取 282
10.5 小结 283
第11章 日期时间操作和使用 284
11.1 使用DateTime处理日期
时间 284
11.1.1 DateTime主要成员 284
11.1.2 DateTime转换成字符串 287
11.1.3 DateTime日期时间计算 289
11.2 MonthCalendar控件实现
日历 292
11.2.1 MonthCalendar主要成员 292
11.2.2 MonthCalendar使用示例 293
11.3 Date`TimePicker控件选择日期
时间 297
11.3.1 DateTimePicker主要成员 297
11.3.2 DateTimePicker使用示例 298
11.4 Timer控件实现定时器 300
11.4.1 初始化Timer控件 300
11.4.2 Timer控件使用示例 300
11.5 小结 301
第12章 多线程编程 302
12.1 多线程介绍 302
12.1.1 什么是多线程 302
12.1.2 线程命名空间 303
12.2 C#中多线程实现 304
12.2.1 线程执行函数 304
12.2.2 启动线程 305
12.2.3 结束线程 308
12.3 线程间数据同步 310
12.3.1 线程间数据共享 310
12.3.2 lock语句同步数据访问 312
12.3.3 Mutex类同步数据访问 314
12.3.4 Monitor类同步数据访问 316
12.4 创建带参数的线程 319
12.4.1 带参数线程处理函数 319
12.4.2 使用带参数线程 319
12.5 小结 321
第13章 动态链接库编程 322
13.1 动态链接库介绍 322
13.1.1 什么是动态链接库 322
13.1.2 .NET动态链接库 323
13.2 .NET类库项目——
MyVehicle 324
13.2.1 创建DLL要考虑的
问题 324
13.2.2 创建类库项目MyVehicle 325
13.2.3 添加MyVehicle对外
接口 325
13.2.4 实现MyVehicle 328
13.2.5 生成DLL文件
MyVehicle.dll 333
13.3 使用MyVehicle类库 333
13.3.1 通过项目引用MyVehicle
类库 333
13.3.2 调用MyVehicle对外
接口 334
13.3.3 通过DLL引用MyVehicle
类库 336
13.4 小结 340
第3篇 数据访问应用
第14章 SQL Server 2005介绍 342
14.1 SQL Server 2005的安装和
主要功能 342
14.1.1 安装SQL Server 2005 342
14.1.2 SQL Server 2005结构 345
14.2 SQL Server 2005管理工具 346
14.2.1 添加数据库连接 346
14.2.2 新建数据库——Students 347
14.2.3 设计数据表 348
14.2.4 修改数据记录 350
14.2.5 设计视图 350
14.3 Visual Studio 2008管理
数据库 351
14.3.1 新建数据库 351
14.3.2 连接到数据库 352
14.3.3 管理数据库 353
14.4 小结 353
第15章 ADO.NET数据库编程 355
15.1 ADO.NET介绍 355
15.1.1 什么是ADO.NET 355
15.1.2 System.Data命名空间 356
15.2 DataSet和DataTable类 357
15.2.1 DataTable类成员 358
15.2.2 创建DataTable 360
15.2.3 遍历DataTable的记录 362
15.2.4 接受和回滚DataTable的
更改 364
15.2.5 DataSet类成员 367
15.2.6 使用DataSet类 369
15.2.7 接受和回滚DataSet的
更改 374
15.3 SQL Server数据库访问 375
15.3.1 数据库访问步骤 375
15.3.2 用SqlConnection连接
数据库 376
15.3.3 用SqlCommand执行
SQL命令 379
15.3.4 用SqlDataReader读取
数据库记录 382
15.3.5 用SqlDataAdapter获取
数据库记录 385
15.3.6 用SqlDataAdapter更改
数据库记录 388
15.4 Access数据库访问 391
15.4.1 System.Data.OleDb命名
空间 391
15.4.2 Access数据库访问 391
15.5 使用数据库访问控件 392
15.5.1 用DataGridView控件
修改记录 392
15.5.2 用BindingNavigator控件
导航记录 395
15.6 语言集成查询LINQ 396
15.6.1 什么是LINQ 396
15.6.2 查询表达式基础 397
15.6.3 复合查询 399
15.6.4 联接查询 401
15.6.5 查询结果排序 403
15.6.6 查询数据类型 406
15.6.7 查询的扩展方法 408
15.6.8 LINQ to DataSet 412
15.6.9 LINQ其他功能 413
15.7 小结 414
第16章 XML文件数据访问 415
16.1 XML概述 415
16.1.1 什么是XML文件 415
16.1.2 System.Xml命名空间 417
16.2 用XmlReader类读取XML
文件 418
16.2.1 XmlReader的成员 418
16.2.2 读取XML文件的步骤 420
16.2.3 读取XML文件的数据 422
16.3 用XmlWriter类写入XML
文件 429
16.3.1 XmlWriter的成员 429
16.3.2 写入XML文件的步骤 430
16.3.3 写入XML文件的
数据 431
16.4 用XmlDocument类访问XML
文件 435
16.4.1 XmlDocument和XmlNode
成员 435
16.4.2 加载XML数据 437
16.4.3 遍历XML节点 438
16.4.4 编辑XML节点 440
16.4.5 保存XML数据 442
16.5 小结 444
第4篇 网络通讯应用
第17章 TCP/IP服务器开发 448
17.1 TCP/IP概述 448
17.1.1 TCP/IP开发概述 448
17.1.2 .NET网络处理命名空间 449
17.2 TCP/IP服务器端开发 450
17.2.1 服务器端开发步骤 451
17.2.2 Socket类成员 451
17.2.3 用Socket类监听连接 454
17.2.4 TcpListener类成员 456
17.2.5 用TcpListener类监听
连接 457
17.3 ChatRoom服务器端实例 458
17.3.1 ChatRoom软件基本结构 458
17.3.2 ChatRoom软件的通讯
协议 459
17.3.3 ChatRoom通讯协议
具体实现 460
17.3.4 ImServer类对客户端
管理 465
17.3.5 ImServer类监听客户端
连接 469
17.3.6 ImServer类处理客户端
消息 470
17.3.7 ImServer类启动和停止 473
17.3.8 使用服务器类ImServer 475
17.4 小结 479
第18章 TCP/IP客户端开发 481
18.1 TCP/IP客户端开发 481
18.1.1 客户端程序开发步骤 481
18.1.2 TcpClient类 481
18.1.3 用TcpClient连接服务器 482
18.1.4 NetworkStream网络
数据流 483
18.1.5 用NetworkStream传输
数据 484
18.2 ChatRoom客户端实例 486
18.2.1 客户端界面设计 486
18.2.2 连接服务器 488
18.2.3 处理服务器消息 490
18.2.4 发送聊天信息 493
18.2.5 客户端运行效果 494
18.3 小结 495
第19章 ASP.NET网页开发 496
19.1 ASP.NET简介 496
19.1.1 什么是ASP.NET 496
19.1.2 Web命名空间 497
19.1.3 创建Web应用程序 497
19.2 使用ASP.NET控件 499
19.2.1 用TextBox控件实现
文本输入 499
19.2.2 用Button控件实现按钮 501
19.2.3 用HyperLink控件实现
超链接 502
19.2.4 用DropDownList、ListBox
等实现列表 503
19.2.5 用Menu控件实现菜单
导航 505
19.3 网页开发实例——留言本 507
19.3.1 设计留言本网站 508
19.3.2 欢迎页面实现 509
19.3.3 添加留言页面实现 510
19.3.4 查看留言页面实现 514
19.3.5 发布留言板网站 517
19.4 小结 519
第5篇 综合实例
第20章 软件开发流程概述 522
20.1 软件工程概述 522
20.1.1 什么是软件工程 522
20.1.2 软件开发基本流程 523
20.2 需求分析介绍 525
20.2.1 需求分析的任务 525
20.2.2 需求分析的方法 526
20.3 概要设计介绍 527
20.4 用Visual Studio 2008完成
类设计 527
20.4.1 详细设计的任务 528
20.4.2 创建Visual Studio 2008
类关系图 528
20.4.3 类关系图编辑 530
20.4.4 类关系图类编辑 531
20.5 用Visual Studio 2008进行
软件编码 534
20.5.1 C#编码规范 534
20.5.2 Visual Studio 2008常用
技巧 535
20.6 用Visual Studio 2008进行
软件测试 537
20.6.1 软件测试的任务和方法 537
20.6.2 软件测试过程 538
20.6.3 Visual Studio 2008单元
测试 539
20.6.4 创建单元测试方法 542
20.6.5 单元测试结果查看 545
20.7 软件维护和更新 546
20.8 小结 547
第21章 综合实例——个人理财
助手 548
21.1 个人理财助手需求分析 548
21.1.1 个人理财助手需求采集 548
21.1.2 个人理财助手需求分析 549
21.2 个人理财助手的设计 551
21.2.1 个人理财助手整体结构 551
21.2.2 个人理财助手数据库设计 552
21.2.3 个人理财助手界面设计 554
21.3 个人理财助手界面实现 556
21.3.1 主界面初始化和关闭 556
21.3.2 使用帮助实现 557
21.3.3 用户登录界面实现 559
21.3.4 用户登录功能实现 562
21.3.5 用户管理功能实现 564
21.3.6 银行卡信息管理界面实现 567
21.3.7 收入记录管理界面实现 570
21.3.8 收入记录编辑对话框实现 574
21.3.9 支出记录管理界面实现 579
21.4 个人理财助手数据读写
讲解 584
21.4.1 用户信息数据库操作
实现 584
21.4.2 银行卡信息数据库操作
实现 589
21.4.3 支出记录数据库操作实现 598
21.4.4 收入记录数据库操作实现 606
21.5 个人理财助手部署与演示 614
21.5.1 个人理财助手的部署 614
21.5.2 个人理财助手的演示 614
21.6 小结 618