第1篇 基础入门 3
第1章 揭开C#的神秘面纱——我的第一个C#程序 3
1.1 C#简介 4
1.2 NET框架 5
1.3 Visual C#的开发环境 5
1.3.1 安装Visual Studio 2017的条件 5
1.3.2 安装Visual Studio 2017 6
1.4 熟悉开发环境 7
1.4.1 创建项目 8
1.4.2 菜单栏 9
1.4.3 工具栏 11
1.4.4 工具箱面板 11
1.4.5 属性面板 12
1.4.6 错误列表 12
1.4.7 输出面板 13
1.5 创建第一个简单的Visual C#应用程序 13
1.6 如何学好C 14
1.7 大神解惑 15
1.8 跟我学上机 16
第2章 零基础开始学习——C#基本语法 17
2.1 C#的程序结构 18
2.1.1 注释 18
2.1.2 命名空间 18
2.1.3 类 20
2.1.4 Main方法 20
2.1.5 标识符与关键字 21
2.1.6 C#语句 22
2.2 程序的编写规范 22
2.2.1 代码书写规则 22
2.2.2 命名规范 22
2.3 数据类型 23
2.3.1 变量 23
2.3.2 常量 24
2.3.3 值类型 24
2.3.4 引用类型 32
2.3.5 值类型和引用类型的区别 34
2.3.6 类型转换 36
2.4 运算符和表达式 40
2.4.1 表达式 41
2.4.2 运算符 41
2.4.3 运算符优先级 49
2.5 大神解惑 50
2.6 跟我学上机 50
第3章 控制程序运行方向——C#程序结构 51
3.1 顺序结构 52
3.2 选择结构 52
3.2.1 if语句 52
3.2.2 if...else语句 53
3.2.3 选择嵌套语句 54
3.2.4 switch分支结构语句 55
3.3 循环结构 57
3.3.1 while语句 57
3.3.2 do...while语句 58
3.3.3 for语句 59
3.3.4 循环语句的嵌套 60
3.4 其他语句 61
3.4.1 break语句 61
3.4.2 continue语句 62
3.4.3 goto语句 63
3.4.4 return语句 63
3.5 大神解惑 64
3.6 跟我学上机 65
第4章 主流软件开发方法——面向对象入门 66
4.1 面向对象编程思想 67
4.1.1 面向对象概述 67
4.1.2 面向对象编程解决问题的方法 67
4.1.3 面向对象编程的特点 68
4.2 C#中的类 69
4.2.1 类的概念 70
4.2.2 类的声明 70
4.2.3 类的成员:属性、方法 71
4.2.4 构造函数和析构函数 77
4.3 C#中的对象 80
4.3.1 对象的概念 80
4.3.2 对象与类的关系 80
4.3.3 对象的创建 80
4.4 分部类 81
4.5 结构与类 82
4.5.1 结构的定义和使用 83
4.5.2 结构与类的区别 84
4.6 大神解惑 85
4.7 跟我学上机 85
第5章 深入了解面向对象——面向对象的重要特征 87
5.1 类的封装性 88
5.2 类的继承性 88
5.2.1 继承性概述 89
5.2.2 继承性的规则 90
5.3 类的多态性 91
5.3.1 覆盖性重写 91
5.3.2 多态性重写 92
5.4 接口 95
5.4.1 接口的概念及声明 95
5.4.2 接口的实现 96
5.4.3 继承多个接口 97
5.5 抽象类与抽象方法 99
5.5.1 抽象类 99
5.5.2 抽象方法 100
5.5.3 抽象类与接口 101
5.6 委托 101
5.6.1 委托的声明 102
5.6.2 实例化委托 102
5.6.3 调用委托 102
5.7 事件 103
5.7.1 定义事件 103
5.7.2 订阅事件 104
5.7.3 触发事件 104
5.8 大神解惑 105
5.9 跟我学上机 106
第6章 特殊的类——集合与泛型 107
6.1 数组概述 108
6.2 一维数组的声明和使用 108
6.2.1 一维数组的定义 108
6.2.2 一维数组的使用 110
6.3 二维数组的声明和使用 111
6.3.1 二维数组的定义 111
6.3.2 二维数组的使用 112
6.4 数组的基本操作 114
6.4.1 遍历数组 114
6.4.2 数组Array类的常用操作 115
6.5 ArrayList集合 117
6.5.1 ArrayList概述 117
6.5.2 ArrayList的操作 119
6.5.3 Array与ArrayList的区别 122
6.6 HashTable集合 122
6.6.1 HashTable概述 122
6.6.2 HashTable的操作 124
6.7 泛型 125
6.7.1 泛型概述 126
6.7.2 泛型集合 128
6.7.3 泛型接口 130
6.7.4 泛型类 131
6.7.5 泛型方法 134
6.8 大神解惑 135
6.9 跟我学上机 136
第2篇 核心技术 139
第7章 Windows应用程序开发初步——常用窗体控件 139
7.1 Windows窗体简介 140
7.1.1 WinFonn窗体的概念 140
7.1.2 窗体的常用属性 140
7.1.3 窗体的常用事件 142
7.1.4 添加和删除窗体 142
7.2 常用Windows窗体控件 144
7.2.1 控件的分类和作用 144
7.2.2 添加控件 144
7.2.3 排列控件 145
7.2.4 删除控件 146
7.3 文本类控件和消息框 146
7.3.1 标签(Label)控件 146
7.3.2 按钮(Button)控件 147
7.3.3 文本框(TextBox)控件 149
7.3.4 消息框(MessageBox) 151
7.4 Windows应用程序的结构和开发步骤 154
7.4.1 Windows应用程序的结构 154
7.4.2 Windows应用程序开发步骤 155
7.5 大神解惑 155
7.6 跟我学上机 156
第8章 Windows应用程序开发进阶——高级窗体控件 157
8.1 菜单与工具栏控件 158
8.1.1 菜单控件 158
8.1.2 工具栏(toolStrip)控件 160
8.2 列表视图和树视图控件 161
8.2.1 列表视图控件(ListView) 161
8.2.2 树视图控件(TreeView) 167
8.3 选项卡控件(TabControl) 172
8.4 通用对话框控件 175
8.4.1 打开文件对话框(OpenFile Dialog) 175
8.4.2 保存文件对话框(SaveFile Dialog) 177
8.4.3 选择目录对话框(FolderBrowser Dialog) 179
8.5 多文档编程(MDI窗体) 181
8.6 大神解惑 184
8.7 跟我学上机 184
第9章 文件操作的利器——C#文件流 185
9.1 文件 186
9.1.1 System.IO命名空间 186
9.1.2 文件类File的使用 188
9.1.3 文件夹Directory类的使用 189
9.1.4 FileInfo类和DirectoryInfo类的使用 191
9.1.5 文件与文件夹的相关操作 193
9.2 数据流 198
9.2.1 流操作介绍 198
9.2.2 文件流类 199
9.3 文本文件的读写操作 202
9.3.1 StreamReader类 202
9.3.2 StreamWriter类 203
9.4 读写二进制文件 205
9.4.1 BinaryReader类 205
9.4.2 BinaryWriter类 206
9.5 读写内存流 208
9.6 大神解惑 209
9.7 跟我学上机 210
第10章 任务同时进行——多线程操作 211
10.1 进程 212
10.1.1 进程简介 212
10.1.2 进程的基本操作 212
10.2 线程 213
10.2.1 线程简介 213
10.2.2 单线程与多线程 214
10.2.3 线程的基本操作 215
10.2.4 创建线程 215
10.2.5 线程的控制 216
10.2.6 线程优先级 219
10.3 多线程同步 221
10.3.1 多线程同步概述 221
10.3.2 用Lock语句实现互斥线程 222
10.3.3 用Monitor类实现互斥线程 223
10.3.4 用Mutex类实现互斥线程 224
10.4 线程池 226
10.5 大神解惑 228
10.6 跟我学上机 228
第11章 数据查询新模型——语言集成查询LINQ 229
11.1 LINQ简介 230
11.1.1 隐式类型化变量(var) 230
11.1.2 查询操作简介 230
11.1.3 数据源 231
11.1.4 查询 231
11.1.5 执行查询 232
11.2 LINQ和泛型类型 233
11.2.1 LINQ查询中的IEnumerable变量 233
11.2.2 通过编译器处理泛型类型声明 233
11.3 基本LINQ查询操作 234
11.3.1 获取数据源 234
11.3.2 筛选 234
11.3.3 排序 235
11.3.4 分组 236
11.3.5 联接 238
11.4 大神解惑 241
11.5 跟我学上机 242
第12章 解决问题的法宝——异常和调试 243
12.1 异常处理 244
12.1.1 异常处理的概念 244
12.1.2 典型的try...catch异常处理语句 245
12.1.3 使用finally块 246
12.1.4 使用throw关键字显式抛出异常 247
12.2 程序调试 249
12.2.1 程序错误分类 249
12.2.2 基本调试概念——断点 250
12.2.3 程序调试信息 252
12.3 大神解惑 255
12.4 跟我学上机 256
第3篇 高级应用 259
第13章 C#的数据库编程——ADO.NET操作数据库 259
13.1 数据库基本知识 260
13.1.1 数据库基本概念 260
13.1.2 数据库系统的特点 260
13.1.3 数据模型简介 261
13.1.4 SQL语言简介 261
13.2 数据库相关操作 262
13.2.1 数据库的创建 262
13.2.2 删除数据库 263
13.2.3 数据表相关操作 264
13.2.4 常用SQL语句的应用 265
13.3 ADO.NET简介和数据库的访问 268
13.3.1 ADO.NET特点 268
13.3.2 ADO.NET组件及结构 268
13.3.3 连接数据库 270
13.3.4 执行SQL语句:Command对象 272
13.3.5 读取数据:DataReader对象 277
13.3.6 数据适配器:DataAdapter对象 280
13.4 数据集(DataSet对象)简介 286
13.4.1 DataSet对象简介 286
13.4.2 DataSet对象中的常用属性与方法 287
13.4.3 使用DataSet对象的步骤 287
13.5 使用DataGridView控件显示和操作数据 288
13.5.1 DataGridView控件列 289
13.5.2 行高与列宽的设置 291
13.5.3 DataGridView选中单元格时的样式 291
13.5.4 编辑DataGridView与绑定属性 292
13.5.5 数据集(DataSet)与DataGridView的结合使用 293
13.6 大神解惑 295
13.7 跟我学上机 298
第14章 图形界面设计——GDI+技术 299
14.1 GDI+介绍 300
14.2 Graphics类 301
14.3 Pen类和Brush类的使用 301
14.3.1 创建Pen类对象 302
14.3.2 Brush类的使用 303
14.4 基本绘图 310
14.4.1 绘制直线和矩形 311
14.4.2 绘制椭圆、圆弧和扇形 314
14.4.3 绘制多边形 319
14.5 使用GDI+绘制柱形图、饼形图、折线图 320
14.5.1 使用GDI+绘制柱形图 321
14.5.2 使用GDI+绘制饼形图 324
14.5.3 使用GDI+绘制折线图 327
14.6 大神解惑 329
14.7 跟我学上机 330
第15章 融入互联网时代——开发网络应用程序 331
15.1 网络编程基础 332
15.1.1 通信协议 332
15.1.2 标识资源 333
15.1.3 套接字编程 333
15.2 网络编程类 334
15.2.1 Dns类 334
15.2.2 IPAddress类 336
15.2.3 IPEndPoint类 338
15.2.4 WebClient类 340
15.3 Socket网络编程相关类 342
15.3.1 Socket类 342
15.3.2 TcpListener类和TcpClient类 343
15.3.3 UdpClient类 352
15.4 System.Net.Mail简介 356
15.4.1 MailMessage类 356
15.4.2 MailAddress类 357
15.4.3 Attachment类 358
15.4.4 SmtpClient类 360
15.5 大神解惑 362
15.6 跟我学上机 362
第16章 注册表技术——在C#中操作注册表 363
16.1 注册表简介 364
16.1.1 Registry类 364
16.1.2 RegistryKey类 365
16.2 注册表的相关操作 366
16.2.1 注册表信息的读取 366
16.2.2 注册表信息的创建与修改 368
16.2.3 注册表信息的删除 370
16.3 注册表的应用 373
16.4 大神解惑 375
16.5 跟我学上机 376
第17章 互动式报表——水晶报表 377
17.1 水晶报表插件的下载与安装 378
17.2 水晶报表插件的使用 379
17.3 水晶报表的基本操作 382
17.3.1 报表数据分组 382
17.3.2 报表数据排序 383
17.3.3 报表数据筛选 384
17.3.4 图表的使用 388
17.4 大神解惑 389
17.5 跟我学上机 390
第18章 程序开发收尾工作——应用程序打包 391
18.1 Visual Studio Installer简介 392
18.2 Visual Studio Installer 工具的下载安装 392
18.3 Visual Studio Installer 工具的使用 394
18.3.1 创建Windows安装项目 394
18.3.2 输出文件的添加 395
18.3.3 内容文件的添加 396
18.3.4 快捷方式的创建 396
18.3.5 注册表项的添加 397
18.3.6 生成Windows安装程序 398
18.4 大神解惑 398
18.5 跟我学上机 398
第4篇 项目开发实战 401
第19章 经典系统应用——开发图书管理系统 401
19.1 需求分析 402
19.2 功能分析 402
19.3 数据库设计 404
19.4 开发前准备工作 405
19.5 系统代码编写 408
19.5.1 图书类(class Book) 408
19.5.2 图书馆类(class Library) 409
19.5.3 借书系统类(class Book System) 410
19.5.4 Main类(class ManClass) 413
19.6 系统运行 414
19.7 项目总结 414
第20章 流行系统应用——开发社区互助系统 415
20.1 需求分析 416
20.2 功能分析 416
20.3 数据库设计 418
20.4 开发前准备工作 419
20.5 系统代码编写 422
20.5.1 需求类(class Need) 422
20.5.2 平台类(class Platform) 423
20.5.3 系统类(class Community Share) 425
20.5.4 Main类(class MainClass) 428
20.6 系统运行 428
20.7 项目总结 430
第21章 娱乐影视应用——开发电影票预订系统 431
21.1 需求分析 432
21.2 功能分析 432
21.3 数据库设计 433
21.4 开发前准备工作 434
21.5 系统代码编写 437
21.5.1 座位类(class Seat) 437
21.5.2 影厅类(class Hall) 438
21.5.3 电影类(class Movie) 440
21.5.4 订票系统类(class Ticket-System) 441
21.5.5 Main类(class CinemaTicket) 442
21.6 系统运行 445
21.7 项目总结 446
第22章 企业系统应用——开发人事管理系统 447
22.1 需求分析 448
22.2 系统功能结构 448
22.2.1 构建开发环境 448
22.2.2 系统功能结构 448
22.3 数据库设计 449
22.3.1 数据库分析 449
22.3.2 数据库实体E-R图 449
22.3.3 数据库表的设计 452
22.4 开发前准备工作 455
22.5 用户登录模块 462
22.5.1 定义数据库连接方法 462
22.5.2 防止窗口被关闭 465
22.5.3 验证用户名和密码 466
22.6 人事档案管理模块 468
22.6.1 界面开发 468
22.6.2 代码开发 468
22.6.3 添加和编辑员工照片 484
22.7 用户设置模块 485
22.7.1 添加、修改用户信息 485
22.7.2 删除用户基本信息 488
22.7.3 设置用户权限 489
22.8 数据库维护模块 490
22.8.1 数据库备份功能 491
22.8.2 数据库还原功能 491
22.9 系统运行 492
22.9.1 登录 492
22.9.2 企业人事管理系统 492
22.9.3 人事档案管理 492
22.9.4 人事资料查询 493
22.9.5 员工信息提醒 493
22.9.6 员工通讯录 494
22.9.7 日常记事 494
22.9.8 用户设置 495
22.9.9 基础信息维护管理 495
22.10 项目总结 496