标题：C#从入门到精通（第2版）
图书信息
书名：  C#从入门到精通（第2版）
出版社：清华大学出版社
ISBN：9787302226628
出版时间：2010-07-01
作者：王小科、徐薇
定价：69.8元RMB  
内容简介
本书从初学者角度出发，通过通俗易懂的语言、丰富多彩的实例，详细介绍了使用C#进行WinForm应用程序开发应该掌握的各方面技术。全书共分28章，包括初识C#及其开发环境，开始C#之旅，变量与常量，表达式与运算符，字符与字符串，流程控制语句，数组和集合，属性和方法，结构和类，面向对象技术高级应用，异常处理，Windows窗体，Windows应用程序常用控件，Windows应用程序高级控件，数据访问技术，DataGridView数据控件，程序调试，迭代器和分部类，泛型的使用，文件及数据流技术，帮助文件的使用，GDI+图形图像技术，水晶报表与打印，网络编程技术，注册表技术，线程的使用，Windows应用程序打包，企业人事管理系统等。所有知识都结合具体实例进行介绍，涉及的程序代码给出了详细的注释，可以使读者轻松领会C#应用程序开发的精髓，快速提高开发技能。
本书列举了大量的小型实例、综合实例和部分项目案例；所附DVD光盘内容有同步视频讲解、实例源程序、“实践与练习”答案等；本书的服务网站提供了模块库、案例库、题库、素材库、答疑服务。
本书内容详尽，实例丰富，非常适合作为编程初学者的学习用书，也适合作为开发人员的查阅、参考资料。
图书目录
第1篇  基础知识
第1章  初识C#及其开发环境 3
视频讲解：50分钟
1.1  C#概述 4
1.1.1  C#语言及其特点 4
1.1.2  C#与.NET框架 5
1.2  安装与卸载Visual Studio 2008 5
1.2.1  安装Visual Studio 2008系统的必备条件 5
1.2.2  安装Visual Studio 2008 6
1.2.3  卸载Visual Studio 2008 9
1.3  熟悉Visual Studio 2008开发环境 9
1.3.1  创建项目 10
1.3.2  菜单栏 11
1.3.3  工具栏 13
1.3.4  “工具箱”面板 13
1.3.5  “属性”面板 14
1.3.6  “错误列表”面板 15
1.3.7  “输出”面板 15
1.4  Visual Studio 2008帮助系统 15
1.4.1  安装MSDN 15
1.4.2  使用MSDN 18
1.5  小结 20
第2章  开始C#之旅 21
视频讲解：16分钟
2.1  编写第一个C#程序 22
2.2  初识C#程序结构 23
2.2.1  注释 23
2.2.2  命名空间 24
2.2.3  类 25
2.2.4  Main方法 25
2.2.5  标识符及关键字 26
2.2.6  C#语句 26
2.3  程序编写规范 26
2.3.1  代码书写规则 27
2.3.2  命名规范 27
2.4  小结 29
第3章  变量与常量 31
视频讲解：19分钟
3.1  变量的基本概念 32
3.2  变量类型 32
3.2.1  值类型 32
3.2.2  引用类型 34
3.2.3  值类型与引用类型的区别 35
3.2.4  枚举类型 37
3.2.5  类型转换 39
3.3  变量操作 42
3.3.1  声明变量 42
3.3.2  变量的作用域 43
3.3.3  变量的赋值 43
3.4  常量 44
3.5  小结 45
3.6  实践与练习 45
第4章  表达式与运算符 47
视频讲解：15分钟
4.1  表达式 48
4.2  运算符 48
4.2.1  算术运算符 48
4.2.2  赋值运算符 51
4.2.3  关系运算符 52
4.2.4  逻辑运算符 55
4.2.5  移位运算符 58
4.2.6  其他特殊运算符 59
4.3  运算符优先级 61
4.4  小结 62
4.5  实践与练习 62
第5章  字符与字符串 63
视频讲解：28分钟
5.1  字符类Char的使用 64
5.1.1  Char类概述 64
5.1.2  Char类的使用 64
5.1.3  转义字符 66
5.2  字符串类String的使用 67
5.2.1  String类概述 68
5.2.2  String类的使用 68
5.2.3  比较字符串 69
5.2.4  格式化字符串 71
5.2.5  截取字符串 72
5.2.6  分割字符串 73
5.2.7  插入和填充字符串 73
5.2.8  删除字符串 75
5.2.9  复制字符串 76
5.2.10  替换字符串 77
5.3  可变字符串类StringBuilder的使用 78
5.3.1  StringBuilder类的定义 78
5.3.2  StringBuilder类的使用 79
5.3.3  StringBuilder类与String类的区别 80
5.4  小结 80
5.5  实践与练习 80
第6章  流程控制语句 81
视频讲解：29分钟
6.1  选择语句 82
6.1.1  if…else语句 82
6.1.2  使用switch语句实现多分支选择 85
6.2  迭代语句 87
6.2.1  while语句 87
6.2.2  do…while语句 89
6.2.3  for语句 90
6.2.4  foreach语句 91
6.3  跳转语句 92
6.3.1  break语句 93
6.3.2  continue语句 94
6.3.3  goto语句 95
6.3.4  return语句 96
6.4  小结 97
6.5  实践与练习 97
第7章  数组和集合 99
视频讲解：52分钟
7.1  数组概述 100
7.2  一维数组的声明和使用 100
7.2.1  一维数组的声明 100
7.2.2  一维数组的使用 102
7.3  二维数组的声明和使用 102
7.3.1  二维数组的声明 103
7.3.2  二维数组的使用 103
7.3.3  动态二维数组的声明及使用 104
7.4  数组的基本操作 106
7.4.1  如何遍历数组 106
7.4.2  添加/删除数组元素 106
7.4.3  对数组进行排序 107
7.4.4  数组的合并与拆分 110
7.5  ArrayList类 112
7.5.1  ArrayList类概述 112
7.5.2  ArrayList元素的添加 114
7.5.3  ArrayList元素的删除 116
7.5.4  ArrayList的遍历 118
7.5.5  ArrayList元素的查找 119
7.6  Hashtable（哈希表） 119
7.6.1  Hashtable概述 119
7.6.2  Hashtable元素的添加 120
7.6.3  Hashtable元素的删除 121
7.6.4  Hashtable的遍历 122
7.6.5  Hashtable元素的查找 122
7.7  小结 123
7.8  实践与练习 124
第8章  属性和方法 125
视频讲解：19分钟
8.1  属性 126
8.1.1  属性概述 126
8.1.2  属性的使用 127
8.2  方法 129
8.2.1  方法的声明 129
8.2.2  方法的分类 130
8.2.3  方法的重载 131
8.2.4  Main方法 132
8.3  小结 132
8.4  实践与练习 133
第9章  结构和类 135
视频讲解：29分钟
9.1  结构 136
9.1.1  结构概述 136
9.1.2  结构的使用 137
9.2  类 138
9.2.1  面向对象概述 138
9.2.2  类的概念 139
9.2.3  类的声明 139
9.2.4  构造函数和析构函数 140
9.2.5  对象的声明和实例化 142
9.2.6  类与对象的关系 144
9.3  类的面向对象特性 144
9.3.1  类的封装 144
9.3.2  类的继承 146
9.3.3  类的多态 148
9.4  小结 150
9.5  实践与练习 150
第2篇  核心技术
第10章  面向对象技术高级应用 153
视频讲解：19分钟
10.1  接口 154
10.1.1  接口的概念及声明 154
10.1.2  接口的实现与继承 155
10.1.3  显式接口成员实现 158
10.2  抽象类与抽象方法 160
10.2.1  抽象类概述及声明 160
10.2.2  抽象方法概述及声明 160
10.2.3  抽象类与抽象方法的使用 161
10.2.4  抽象类与接口 162
10.3  密封类与密封方法 163
10.3.1  密封类概述及声明 163
10.3.2  密封方法概述及声明 164
10.3.3  密封类与密封方法的使用 164
10.4  小结 166
10.5  实践与练习 166
第11章  异常处理 167
视频讲解：10分钟
11.1  异常处理概述 168
11.2  异常处理语句 168
11.2.1  try…catch语句 169
11.2.2  throw语句 170
11.2.3  try…catch…finally语句 172
11.3  小结 173
11.4  实践与练习 173
第12章  Windows窗体 175
视频讲解：38分钟
12.1  Form窗体 176
12.1.1  Form窗体的概念 176
12.1.2  添加和删除窗体 176
12.1.3  多窗体的使用 178
12.1.4  窗体的属性 179
12.1.5  窗体的显示与隐藏 182
12.1.6  窗体的事件 183
12.2  MDI窗体 185
12.2.1  MDI窗体的概念 185
12.2.2  如何设置MDI窗体 186
12.2.3  排列MDI子窗体 187
12.3  继承窗体 189
12.3.1  继承窗体的概念 189
12.3.2  创建继承窗体 189
12.3.3  在继承窗体中修改继承的控件属性 191
12.4  小结 192
12.5  实践与练习 192
第13章  Windows应用程序常用控件 193
视频讲解：1小时15分钟
13.1  控件概述 194
13.1.1  控件的分类及作用 194
13.1.2  控件命名规范 194
13.2  控件的相关操作 195
13.2.1  添加控件 195
13.2.2  对齐控件 196
13.2.3  锁定控件 196
13.2.4  删除控件 196
13.3  文本类控件 197
13.3.1  标签控件（Label控件） 197
13.3.2  按钮控件（Button控件） 198
13.3.3  文本框控件（TextBox控件） 199
13.3.4  有格式文本
控件（RichTextBox控件） 202
13.4  选择类控件 206
13.4.1  下拉组合框控件（ComboBox控件） 206
13.4.2  复选框控件（CheckBox控件） 208
13.4.3  单选按钮控件（RadioButton控件） 210
13.4.4  数值选择
控件（NumericUpDown控件） 212
13.4.5  列表控件（ListBox控件） 213
13.5  分组类控件 217
13.5.1  容器控件（Panel控件） 217
13.5.2  分组框控件（GroupBox控件） 218
13.5.3  选项卡控件（TabControl控件） 219
13.6  菜单、工具栏和状态栏控件 223
13.6.1  菜单控件（MenuStrip控件） 224
13.6.2  工具栏控件（ToolStrip控件） 225
13.6.3  状态栏控件（StatusStrip控件） 226
13.7  小结 227
13.8  实践与练习 228
第14章  Windows应用程序高级控件 229
视频讲解：51分钟
14.1  ImageList控件（存储图像控件） 230
14.1.1  在ImageList控件中添加图像 230
14.1.2  在ImageList控件中移除图像 231
14.2  ListView控件（列表视图控件） 233
14.2.1  在ListView控件中添加移除项 233
14.2.2  选择ListView控件中的项 236
14.2.3  为ListView控件中的项添加图标 236
14.2.4  在ListView控件中启用平铺视图 237
14.2.5  为ListView控件中的项分组 238
14.3  TreeView控件（树控件） 240
14.3.1  添加和删除树节点 241
14.3.2  获取树控件中选中的节点 243
14.3.3  为树控件中的节点设置图标 244
14.4  DateTimePicker控件（日期控件） 245
14.4.1  使用DateTimePicker控件显示时间 245
14.4.2  使用DateTimePicker控件以自定义
格式显示日期 246
14.4.3  返回DateTimePicker控件中选择的
日期 248
14.5  MonthCalendar控件（月历控件） 248
14.5.1  更改MonthCalendar控件的外观 249
14.5.2  在MonthCalendar控件中显示多个
月份 250
14.5.3  在MonthCalendar控件中以粗体显示
特定日期 251
14.5.4  在MonthCalendar控件中选择日期
范围 251
14.6  其他高级控件 252
14.6.1  使用ErrorProvider控件验证文本框
输入 252
14.6.2  使用HelpProvider控件调用帮助文件 255
14.6.3  使用Timer控件设置时间间隔 256
14.6.4  使用ProgressBar控件显示程序运行
进度条 257
14.7  小结 258
14.8  实践与练习 258
第15章  数据访问技术 259
视频讲解：37分钟
15.1  数据库基础 260
15.1.1  数据库简介 260
15.1.2  SQL语言简介 260
15.1.3  数据库的创建及删除 261
15.1.4  数据表的创建及删除 262
15.1.5  简单SQL语句的应用 263
15.2  ADO·NET简介 270
15.3  连接数据库：Connection对象 270
15.3.1  Connection对象概述 271
15.3.2  连接数据库 271
15.3.3  关闭连接 272
15.4  执行SQL语句：Command对象 274
15.4.1  Command对象概述 274
15.4.2  设置数据源类型 275
15.4.3  执行SQL语句 276
15.5  读取数据：DataReader对象 279
15.5.1  DataReader对象概述 279
15.5.2  判断查询结果中是否有值 280
15.5.3  读取数据 281
15.6  数据适配器：DataAdapter对象 281
15.6.1  DataAdapter对象概述 282
15.6.2  填充DataSet数据集 282
15.6.3  更新数据源 283
15.7  数据集：DataSet对象 285
15.7.1  DataSet对象概述 285
15.7.2  合并DataSet内容 286
15.7.3  复制DataSet内容 287
15.8  小结 289
15.9  实践与练习 289
第16章  DataGridView数据控件 291
视频讲解：19分钟
16.1  DataGridView控件概述 292
16.2  在DataGridView控件中显示数据 292
16.3  获取DataGridView控件中的当前
单元格 293
16.4  直接在DataGridView控件中修改
数据 294
16.5  当选中DataGridView控件中的行时
显示不同的颜色 297
16.6  禁止在DataGridView控件中添加和
删除行 298
16.7  使用Columns和Rows属性添加
数据 299
16.8  小结 300
16.9  实践与练习 300
第17章  程序调试 303
视频讲解：11分钟
17.1  程序调试概述 304
17.2  常用的程序调试操作 304
17.2.1  断点操作 304
17.2.2  开始、中断和停止程序的执行 305
17.2.3  单步执行 307
17.2.4  运行到指定位置 307
17.3  小结 307
第3篇  高级应用
第18章  迭代器和分部类 311
视频讲解：8分钟
18.1  迭代器 312
18.1.1  迭代器概述 312
18.1.2  迭代器的使用 312
18.2  分部类 313
18.2.1  分部类概述 313
18.2.2  分部类的使用 314
18.3  小结 316
18.4  实践与练习 316
第19章  泛型的使用 317
视频讲解：7分钟
19.1  泛型概述 318
19.2  泛型的使用 318
19.2.1  类型参数T 318
19.2.2  泛型接口 319
19.2.3  泛型方法 320
19.3  小结 321
19.4  实践与练习 321
第20章  文件及数据流技术 323
视频讲解：57分钟
20.1  System·.IO命名空间 324
20.1.1  File类和Directory类 324
20.1.2  FileInfo类和DirectoryInfo类 328
20.2  文件基本操作 331
20.2.1  判断文件是否存在 331
20.2.2  创建文件 332
20.2.3  复制或移动文件 333
20.2.4  删除文件 334
20.2.5  获取文件的基本信息 335
20.3  文件夹的基本操作 336
20.3.1  判断文件夹是否存在 336
20.3.2  创建文件夹 337
20.3.3  移动文件夹 338
20.3.4  删除文件夹 339
20.3.5  遍历文件夹 339
20.4  数据流 342
20.4.1  流操作类介绍 342
20.4.2  文件流类 342
20.4.3  文本文件的写入与读取 344
20.4.4  二进制文件的写入与读取 347
20.5  小结 349
20.6  实践与练习 349
第21章  帮助文件的使用 351
视频讲解：19分钟
21.1  帮助文件概述 352
21.2  制作帮助文件 352
21.2.1  安装Microsoft Help Workshop 352
21.2.2  制作帮助内容文件 353
21.2.3  制作帮助索引文件 356
21.2.4  制作帮助文件 358
21.3  帮助文件的使用 360
21.4  小结 360
第22章  GDI+图形图像技术 361
视频讲解：27分钟
22.1  GDI+绘图基础 362
22.1.1  GDI+概述 362
22.1.2  创建Graphics对象 362
22.1.3  创建Pen对象 363
22.1.4  创建Brush对象 363
22.2  基本图形绘制 366
22.2.1  GDI+中的直线和矩形 366
22.2.2  GDI+中的椭圆、圆弧和扇形 368
22.2.3  GDI+中的多边形 371
22.3  GDI+绘图的应用 372
22.3.1  绘制柱形图 372
22.3.2  绘制折线图 375
22.3.3  绘制饼形图 377
22.4  小结 379
22.5  实践与练习 380
第23章  水晶报表与打印 381
视频讲解：40分钟
23.1  水晶报表简介 382
23.2  .NET平台下的Crystal报表 382
23.2.1  Crystal Reports·.Net简介 382
23.2.2  Crystal报表设计器的环境介绍 382
23.2.3  Crystal报表区域介绍 383
23.3  Crystal报表数据源和数据访问模式 384
23.3.1  Visual Studio 2008中Crystal报表
数据源列举 384
23.3.2  报表的数据访问模式 384
23.4  水晶报表的基本操作 385
23.4.1  创建水晶报表并连接数据源 385
23.4.2  水晶报表中数据的分组与排序 388
23.4.3  水晶报表中数据的筛选 390
23.4.4  在水晶报表中使用图表 393
23.5  Windows打印控件 395
23.5.1  PageSetupDialog控件 395
23.5.2  PrintDialog控件 397
23.5.3  PrintDocument控件 399
23.5.4  PrintPreviewControl控件 400
23.5.5  PrintPreviewDialog控件 402
23.6  小结 403
23.7  实践与练习 403
第24章  网络编程技术 405
视频讲解：1小时3分钟
24.1  网络编程基础 406
24.1.1  System·Net命名空间 406
24.1.2  System·Net.Sockets命名空间 413
24.1.3  System·Net.Mail命名空间 419
24.1.4  POP3协议 422
24.2  开发网络应用程序 424
24.2.1  创建Web页面浏览器 425
24.2.2  局域网聊天程序 426
24.2.3  电子邮件的发送与接收 428
24.3  小结 432
24.4  实践与练习 433
第25章  注册表技术 435
视频讲解：30分钟
25.1  注册表基础 436
25.1.1  Windows注册表概述 436
25.1.2  Registry和RegistryKey类 436
25.2  在C#中操作注册表 438
25.2.1  读取注册表中的信息 438
25.2.2  创建和修改注册表信息 441
25.2.3  删除注册表中的信息 443
25.3  注册表的应用 446
25.3.1  电脑桌面图标设置 447
25.3.2  “开始”菜单与任务栏设置 449
25.4  小结 452
25.5  实践与练习 452
第26章  线程的使用 453
视频讲解：21分钟
26.1  线程简介 454
26.1.1  单线程简介 454
26.1.2  多线程简介 454
26.2  线程的基本操作 455
26.2.1  Thread类 455
26.2.2  创建线程 457
26.2.3  线程的挂起与恢复 458
26.2.4  线程休眠 459
26.2.5  终止线程 460
26.2.6  线程的优先级 462
26.2.7  线程同步 463
26.3  小结 467
26.4  实践与练习 467
第27章  Windows应用程序打包 469
视频讲解：10分钟
27.1  Windows Installer介绍 470
27.2  创建Windows安装项目 470
27.3  制作Windows安装程序 471
27.3.1  添加项目输出文件 472
27.3.2  添加内容文件 472
27.3.3  创建快捷方式 474
27.3.4  添加注册表项 474
27.3.5  生成Windows安装程序 476
27.4  小结 476
第4篇  项目实战
第28章  企业人事管理系统 481
视频讲解：1小时32分钟
28.1  系统分析 482
28.1.1  需求分析 482
28.1.2  可行性分析 482
28.1.3  编写项目计划书 483
28.2  系统设计 485
28.2.1  系统目标 485
28.2.2  系统功能结构 485
28.2.3  系统业务流程图 486
28.2.4  系统编码规范 487
28.3  系统运行环境 490
28.4  数据库与数据表设计 491
28.4.1  数据库分析 491
28.4.2  创建数据库 491
28.4.3  创建数据表 493
28.4.4  数据表逻辑关系 499
28.5  创建项目 501
28.6  公共类设计 503
28.6.1  MyMeans公共类 503
28.6.2  MyModule公共类 505
28.7  登录模块设计 520
28.7.1  设计登录窗体 520
28.7.2  按Enter键时移动鼠标焦点 521
28.7.3  登录功能的实现 521
28.8  系统主窗体设计 522
28.8.1  设计菜单栏 523
28.8.2  设计工具栏 524
28.8.3  设计导航菜单 525
28.8.4  设计状态栏 526
28.9  人事档案管理模块设计 527
28.9.1  设计人事档案管理窗体 528
28.9.2  添加/修改人事档案信息 530
28.9.3  删除人事档案信息 532
28.9.4  单条件查询人事档案信息 533
28.9.5  逐条查看人事档案信息 535
28.9.6  将人事档案信息导出为Word文档 537
28.10  人事资料查询模块设计 542
28.10.1  设计人事资料查询窗体 542
28.10.2  多条件查询人事资料 543
28.11  通讯录模块设计 544
28.11.1  设计通讯录窗体 544
28.11.2  添加/修改通讯录信息 545
28.11.3  删除通讯录信息 547
28.11.4  查询通讯录信息 548
28.12  用户设置模块设计 549
28.12.1  设计用户设置窗体 549
28.12.2  添加/修改用户信息 549
28.12.3  删除用户基本信息 551
28.12.4  设置用户操作权限 552
28.13  数据库维护模块设计 553
28.13.1  设计数据库维护窗体 553
28.13.2  备份数据库 554
28.13.3  还原数据库 555
28.14  运行项目 556
28.15  系统打包部署 558
28.16  开发的常见问题与解决 562
28.16.1  程序为什么会无法运行 562
28.16.2  为什么无法添加职工基本信息 562
28.16.3  选择职工头像时出现异常怎么办 563
28.16.4  数据库还原不成功应该如何解决 563
28.16.5  打包程序时出现错误怎么办 564
28.17  小结 564
附录 565