第0章 C#学习指南 1
0.1 C#的来源 2
0.1.1 C#语言的产生背景 2
0.1.2 C#语言的发展过程 2
0.2 C#的基本思想 2
0.3 C#的技术体系 2
0.4 C#应用领域和前景 3
0.5 C#学习经验谈 4
0.6 C#学习路线图 4
第1篇 C#语言基础 6
第1章 Hello C#——认识C# 6
1.1 C#程序的运行平台——NET框架 7
1.1.1 .NET框架介绍 7
1.1.2 .NET Framework 4.5 的新增功能 7
1.1.3 C#程序的运行机制 8
1.2 C#语言简介 9
1.2.1 C#的发展历史 9
1.2.2 C# 5.0的新特性 9
1.3 C#程序开发利器——集成开发环境Visual Studio 2013 10
1.3.1 Visual Studio 2013的安装 10
1.3.2 Visual Studio 2013集成开发环境 13
1.4 高手点拨 16
1.5 实战练习 16
第2章 C#编程入门 17
2.1 创建第1个C#程序 18
2.1.1 创建第1个控制台应用程序 18
2.1.2 创建第1个Windows窗体应用程序 21
2.2 使用帮助 25
2.2.1 使用MSDN 25
2.2.2 学会利用网络解决问题 27
2.3 C#开发的一般过程 27
2.4 程序编写规范 28
2.4.1 命名规范 28
2.4.2 标识符的大小写规则 28
2.4.3 通用命名约定 28
2.4.4 命名空间命名 29
2.4.5 类、结构和接口命名 29
2.4.6 逻辑层类命名 29
2.4.7 文件夹命名 30
2.4.8 代码编码规范 30
2.5 高手点拨 32
2.6 实战练习 32
第3章 数据类型 33
3.1 数据类型概述 34
3.2 值类型 35
3.3 引用类型 40
3.4 数据类型之间的转换 40
3.4.1 隐式转换 40
3.4.2 显式转换 41
3.4.3 使用Convert类转换 42
3.4.4 数值和字符串之间的转换 44
3.4.5 装箱和拆箱 44
3.5 高手点拨 44
3.6 实战练习 46
第4章 变量与常量 47
4.1 变量 48
4.1.1 变量的命名 48
4.1.2 变量的声明和赋值 48
4.1.3 隐式类型的局部变量 49
4.2 常量 49
4.3 高手点拨 52
4.4 实战练习 52
第5章 运算符与表达式 53
5.1 运算符 54
5.1.1 算术运算符 55
5.1.2 赋值运算符 59
5.1.3 比较运算符 59
5.1.4 逻辑运算符 63
5.1.5 其他运算符 67
5.2 运算符优先级 69
5.3 表达式 70
5.4 高手点拨 71
5.5 实战练习 74
第6章 程序的基本结构 75
6.1 顺序结构 76
6.2 分支结构 76
6.2.1 条件语句 76
6.2.2 switch语句 81
6.3 循环结构 82
6.3.1 for循环 83
6.3.2 while循环 84
6.3.3 do-while循环 85
6.3.4 foreach循环 86
6.4 循环嵌套 87
6.5 高手点拨 88
6.5.1 循环变量的使用 88
6.5.2 特殊形式的循环结构 89
6.6 实战练习 90
第7章 异常处理与程序调试 91
7.1 C#错误类型 92
7.2 异常处理概述 93
7.2.1 异常和异常处理 93
7.2.2 异常类 93
7.3 异常处理过程 95
7.3.1 try-catch语句 95
7.3.2 try-catch-finally语句 96
7.3.3 throw语句 97
7.3.4 自定义异常类 100
7.4 程序调试 101
7.4.1 设置断点 101
7.4.2 启动、继续和停止调试 102
7.4.3 单步调试 102
7.4.4 调试监控 102
7.5 高手点拨 103
7.5.1 使用多catch块处理异常 103
7.5.2 引发异常时要注意的问题 104
7.6 实战练习 104
第8章 常用数据类型的用法 105
8.1 字符串 106
8.1.1 创建字符串 106
8.1.2 字符串的基本操作 107
8.1.3 StringBuilder 111
8.2 数组 112
8.2.1 一维数组 112
8.2.2 二维数组 113
8.2.3 多维数组和交错数组 115
8.2.4 数组基本操作 116
8.3 枚举 120
8.4 高手点拨 121
8.4.1 字符数组与字符串相互转化 121
8.4.2 使用foreach语句遍历二维数组 121
8.4.3 将数组作为方法的参数使用 122
8.5 实战练习 122
第9章 主流软件开发方法——面向对象 123
9.1 面向对象的编程思想 124
9.2 从特殊到一般——C#中的类 125
9.2.1 类的概念 125
9.2.2 类的定义 125
9.2.3 类的成员 127
9.3 从一般到特殊——C#中的对象 131
9.3.1 对象的概念 131
9.3.2 对象的创建和使用 131
9.3.3 匿名类型和对象初始化器 132
9.3.4 构造函数和析构函数 132
9.3.5 参数传递 135
9.4 结构与类 137
9.4.1 结构的定义和使用 137
9.4.2 类和结构的关系 139
9.5 分部类 139
9.6 命名空间 141
9.6.1 声明命名空间 141
9.6.2 using关键字 142
9.7 高手点拨 142
9.8 实战练习 142
第10章 深入了解面向对象——面向对象的重要特征 143
10.1 子承父业——继承 144
10.1.1 继承的定义和使用 144
10.1.2 继承的特性 148
10.1.3 base和this关键字 149
10.2 蝌蚪和青蛙——多态 153
10.2.1 多态的概念 153
10.2.2 多态的实现 153
10.2.3 方法重载、重写和隐藏 154
10.3 统一的标准——接口 155
10.3.1 接口的定义 156
10.3.2 接口的实现 156
10.3.3 接口的继承 159
10.4 抽象类和密封类 160
10.4.1 抽象类和抽象方法 160
10.4.2 实现抽象方法 160
10.4.3 接口、类和抽象类 161
10.4.4 密封类 161
10.5 委托与事件 161
10.5.1 委托 162
10.5.2 事件 163
10.6 匿名方法与lambda表达式 166
10.6.1 匿名方法 166
10.6.2 lambda表达式 166
10.7 高手点拨 169
10.8 实战练习 170
第2篇 Windows应用程序开发 172
第11章 图形用户界面基础 172
11.1 Windows程序简介 173
11.2 窗体 173
11.2.1 Windows窗体的基本属性 174
11.2.2 窗体的重要方法和事件 178
11.2.3 常用的输入/输出方法 179
11.3 控件 180
11.3.1 窗体控件概述 180
11.3.2 Control类的基本属性 180
11.3.3 Control类的方法和事件 182
11.4 Windows应用程序的结构和开发步骤 182
11.5 高手点拨 184
11.6 实战练习 184
第12章 常用控件 185
12.1 按钮类控件 186
12.1.1 按钮类控件常用属性 186
12.1.2 按钮类控件响应的事件 187
12.2 文本类控件 188
12.2.1 文本框控件Textbox 188
12.2.2 富文本框控件RichTextbox 190
12.3 选择类控件 192
12.4 容器类控件 196
12.4.1 GroupBox控件 196
12.4.2 Panel控件 197
12.4.3 Tabcontrol控件 198
12.5 其他控件 201
12.5.1 列表框控件和组合框控件 201
12.5.2 图片框控件和进度条控件 204
12.5.3 日期控件 205
12.5.4 选项卡控件 207
12.5.5 Timer控件 207
12.6 高手点拨 209
12.7 实战练习 210
第13章 界面设计与对话框 211
13.1 菜单 212
13.1.1 菜单的基本结构 212
13.1.2 下拉式菜单控件MenuStrip 212
13.1.3 弹出式菜单控件ContextMenuStrip 215
13.2 工具栏与状态栏 216
13.2.1 工具栏 216
13.2.2 状态栏 217
13.3 对话框 218
13.3.1 模态对话框与非模态对话框 218
13.3.2 通用对话框 218
13.3.3 消息对话框 226
13.4 高手点拨 229
13.5 实战练习 230
第14章 Windows编程高级应用 231
14.1 列表视图 232
14.2 树形控件 236
14.3 表格控件 240
14.3.1 GridView控件 240
14.3.2 DataList控件 242
14.3.3 Repeater控件 242
14.3.4 DetailsView控件 242
14.3.5 FormView控件 242
14.4 其他高级应用 242
14.4.1 字体对话框 243
14.4.2 颜色对话框 244
14.4.3 文件对话框 246
14.4.4 打印对话框 248
14.4.5 多文档界面编程 249
14.5 高手点拨 253
14.6 实战练习 254
第15章 报表与打印 255
15.1 Windows打印组件的使用 256
15.1.1 PrintDocument 256
15.1.2 PrintDialog 257
15.1.3 PageSetupDialog 257
15.1.4 PrintPreviewControl 258
15.1.5 PrintPreviewDialog 258
15.2 打印的基本操作 258
15.3 微软报表 261
15.4 水晶报表 264
15.5 高手点拨 271
15.6 实战练习 272
第3篇 核心应用技术 274
第16章 集合与泛型 274
16.1 集合 275
16.1.1 集合概述 275
16.1.2 非泛型集合类 275
16.1.3 泛型集合类 275
16.2 常用非泛型集合类 276
16.2.1 ArrayList类 276
16.2.2 HashTable类 284
16.3 泛型 288
16.3.1 泛型概述 288
16.3.2 List<T>类 289
16.3.3 Dictionary<K,V>类 289
16.3.4 泛型使用建议 290
16.4 泛型接口 290
16.4.1 IComparer<T>接口 291
16.4.2 IComparable<T>接口 292
16.4.3 自定义泛型接口 294
16.5 定义泛型方法 295
16.5.1 泛型类中的泛型方法 297
16.5.2 泛型约束 299
16.6 高手点拨 300
16.7 实战练习 302
第17章 文件与注册表操作 303
17.1 文件管理的流模型——文件和流 304
17.1.1 C#中操作文件的流模型——文件和流 304
17.1.2 文件的复制、移动和删除 305
17.1.3 OpenFileDialog控件 309
17.1.4 SaveFileDialog控件 312
17.2 目录和路径管理 313
17.2.1 目录的创建、删除与移动 314
17.2.2 FolderBrowserDialog控件 316
17.3 文件读/写 317
17.3.1 FileStream类 317
17.3.2 读/写文本文件 320
17.3.3 读/写二进制文件 324
17.4 注册表操作 328
17.4.1 操作注册表项 328
17.4.2 操作键值 329
17.4.3 判断项和键是否存在 330
17.5 高手点拨 331
17.6 实战练习 332
第18章 ADO.NET数据库访问 333
18.1 ADO.NET概述 334
18.2 ADO.NET的组成 334
18.2.1 .NET Framework数据提供程序 335
18.2.2 DataSet 344
18.2.3 ADO.NET访问数据库的两种模式 349
18.3 使用连接模式访问数据库 350
18.3.1 连接模式下读取数据 350
18.3.2 连接模式下更新数据 352
18.4 使用非连接模式访问数据库 353
18.4.1 非连接模式下读取数据 354
18.4.2 非连接模式下更新数据 355
18.5 数据绑定 358
18.5.1 数据绑定技术概述 358
18.5.2 简单数据绑定 359
18.5.3 BindingSource与BindingNavigator数据绑定组件 362
18.5.4 DataGridView数据绑定控件 366
18.6 高手点拨 368
18.7 实战练习 369
第19章 配置文件及XML文件访问 371
19.1 配置文件的使用 372
19.1.1 配置文件的设置 372
19.1.2 配置文件的访问 374
19.2 XML简介 377
19.2.1 XML文档结构 377
19.2.2 操作XML的命名空间和相关类 380
19.3 C#中使用XML文件 382
19.3.1 使用流式处理模型访问XML文件 382
19.3.2 采用DOM处理模型访问XML文档 390
19.4 高手点拨 396
19.5 实战练习 396
第20章 图形图像处理 397
20.1 图形图像处理基础知识 398
20.1.1 GDI+概述 398
20.1.2 Graphics类 398
20.1.3 图形绘制中相关的类 400
20.2 基本图形绘制 402
20.2.1 绘制直线 402
20.2.2 绘制矩形 403
20.2.3 绘制多边形 404
20.2.4 绘制椭圆 405
20.2.5 绘制扇形和弧线 406
20.2.6 绘制曲线 408
20.2.7 绘制文本 410
20.2.8 填充图形 411
20.3 图像处理 416
20.3.1 图像类 416
20.3.2 图像的显示和保存 417
20.3.3 图像的几何变换 421
20.3.4 图像特效处理 423
20.4 高手点拨 432
20.5 实战练习 432
第21章 多线程编程 433
21.1 多线程的概念 434
21.1.1 多线程技术 434
21.1.2 Thread类 435
21.2 线程的基本操作 435
21.2.1 创建线程 436
21.2.2 启动线程 441
21.2.3 结束线程 443
21.2.4 线程池 446
21.3 线程同步问题 449
21.3.1 线程间数据共享 449
21.3.2 lock语句同步数据访问 451
21.3.3 Mutex类同步数据访问 456
21.3.4 Monitor类同步数据访问 459
21.4 高手点拨 461
21.5 实战练习 462
第22章 网络编程 463
22.1 网络编程基础 464
22.1.1 IPAddress类 465
22.1.2 Dns类 467
22.1.3 IPHostEntry类 469
22.1.4 IPEndPoint类 470
22.2 套接字 472
22.2.1 Socket简介 472
22.2.2 Socket类 474
22.2.3 面向连接的套接字 477
22.2.4 无连接的套接字 479
22.2.5 NetworkStream类 480
22.3 TCP应用编程 484
22.3.1 TcpClient和TcpListener类 485
22.3.2 TCP同步编程 490
22.3.3 TCP异步通信 495
22.4 UDP应用编程 500
22.5 高手点拨 507
22.6 实战练习 508
第23章 类库与控件库 509
23.1 类库基础知识 510
23.1.1 程序集 510
23.1.2 类库 510
23.1.3 组件和控件 510
23.2 自定义类库 511
23.2.1 创建自定义类库 511
23.2.2 自定义类库的引用 514
23.3 用户自定义控件 516
23.3.1 复合控件 516
23.3.2 扩展控件 523
23.3.3 自定义控件 526
23.4 高手点拨 530
23.5 实战练习 530
第24章 项目安装部署 531
24.1 InstallShield Limited的下载与安装 532
24.2 制作Windows安装程序 534
24.3 高手点拨 538
24.4 实战练习 538
第4篇 项目实战 540
第25章 实战前的几点忠告——项目规划 540
25.1 项目开发流程 541
25.2 满足客户需求 541
25.3 组建项目开发团队 541
25.4 项目说明书 542
25.5 项目开发阶段的运作 544
第26章 超市采购管理系统实战 547
26.1 开发背景 548
26.2 需求及功能分析 548
26.3 数据库设计 548
26.4 实体类设计 552
26.5 数据访问层设计 553
26.6 业务逻辑层设计 554
26.7 表示层设计 555
26.8 运行系统 561
第27章 轻松管理不用愁——管理系统开发实战 563
27.1 销售公司网站开发实战 564
27.1.1 需求分析 564
27.1.2 系统实现 567
27.1.3 技术要点 570
27.2 图书管理系统开发实战 570
27.2.1 需求分析 571
27.2.2 系统实现 572
27.2.3 技术要点 575
27.3 酒店管理系统开发实战 575
27.3.1 需求分析 576
27.3.2 系统实现 578
27.3.3 技术要点 584