第1章 .NET简介和C#语言概述 1
1.1 C#语言简介 1
1.1.1 MicrosoftNET平台 1
1.1.2 C#语言简介 3
1.2 熟悉Visual Studio 2008集成开发环境 5
1.2.1 Visual Studio 2008集成开发环境简介 5
1.2.2 Visual Studio 2008帮助系统 10
1.3 编写第一个C#程序 12
1.3.1 初识C#程序结构 13
1.3.2 使用文本编辑器编写第一个程序 15
1.3.3 创建控制台应用程序 17
1.3.4 创建Windows窗体应用程序 19
1.4 综合实训 20
1.5 习题 22
第2章 C#语法基础 23
2.1 数据类型 23
2.1.1 变量 23
2.1.2 常量 24
2.1.3 值类型和引用类型的区别 25
2.1.4 值类型——整数类型 26
2.1.5 值类型——浮点数类型 28
2.1.6 值类型——布尔型 29
2.1.7 值类型——字符型 29
2.1.8 值类型——结构 32
2.1.9 值类型——枚举 35
2.1.10 引用类型 37
2.1.11 各种数据类型间的转换 38
2.2 运算符和表达式 42
2.2.1 运算符概述 42
2.2.2 算术运算符及其表达式 44
2.2.3 赋值运算符及其表达式 45
2.2.4 关系运算符及其表达式 46
2.2.5 位运算符及其表达式 47
2.2.6 逻辑运算符与逻辑表达式 48
2.2.7 其他运算符 49
2.3 流程控制语句 52
2.3.1 选择结构语句 52
2.3.2 循环结构语句 64
2.3.3 break语句和continue语句 70
2.4 综合实训 72
2.5 习题 76
第3章 Windows窗体和基本控件 78
3.1 WinForm窗体 78
3.1.1 WinForm窗体的概念 78
3.1.2 窗体的常用属性 78
3.1.3 窗体的常用事件 80
3.1.4 添加和删除窗体 80
3.2 控件概述 82
3.2.1 控件的分类和作用 82
3.2.2 添加控件 82
3.2.3 排列控件 83
3.2.4 删除控件 84
3.3 文本类控件和消息框 84
3.3.1 标签(Label)控件 84
3.3.2 按钮(Button)控件 85
3.3.3 文本框(TextBox)控件 86
3.3.4 消息框 89
3.4 综合实训 92
3.5 习题 95
第4章 数组和集合 96
4.1 数组概述 96
4.2 一维数组的声明和使用 97
4.2.1 一维数组的定义 97
4.2.2 一维数组的使用 99
4.3 二维数组的定义和使用 102
4.3.1 二维数组的定义 102
4.3.2 二维数组的使用 103
4.4 数组的基本操作 105
4.4.1 遍历数组 105
4.4.2 数组Array类的常用操作 106
4.5 ArrayList集合的使用 111
4.5.1 ArrayList概述 111
4.5.2 ArrayList的操作 114
4.5.3 数组与ArrayList的区别 116
4.6 哈希表HashTable集合 117
4.6.1 HashTable概述 117
4.6.2 HashTable的操作 118
4.7 综合实训 120
4.8 习题 126
第5章 面向对象基础 127
5.1 面向对象编程思想 127
5.1.1 面向对象概述 127
5.1.2 面向对象编程解决问题的方法 128
5.1.3 面向对象编程的特点 129
5.2 类 130
5.2.1 类的概念 130
5.2.2 类的声明 131
5.2.3 对象的声明与实例化 132
5.3 类的数据成员和属性 133
5.3.1 类的数据成员和属性概述 133
5.3.2 类的成员变量 134
5.3.3 类的属性 137
5.4 类的方法成员 140
5.4.1 方法的声明与使用 140
5.4.2 方法的参数传递 144
5.4.3 方法的重载 148
5.4.4 特殊方法 149
5.5 综合实训 152
5.6 习题 156
第6章 类的面向对象特性 158
6.1 使用类图描述类和类成员 158
6.2 类的封装性 159
6.3 类的继承性 160
6.3.1 继承性概述 160
6.3.2 继承性的规则 164
6.4 类的多态性 165
6.4.1 覆盖性重写 165
6.4.2 多态性重写 167
6.5 综合实训 169
6.6 习题 172
第7章 特殊类的使用 173
7.1 抽象类和抽象方法 173
7.1.1 抽象类 173
7.1.2 抽象方法 174
7.2 密封类和密封方法 175
7.2.1 密封类 175
7.2.2 密封方法 175
7.3 静态类和静态成员 176
7.3.1 静态类 176
7.3.2 静态成员 177
7.4 分部类 177
7.5 终极基类Object 178
7.6 综合实训 178
7.7 习题 181
第8章 接口、委托和事件 182
8.1 接口 182
8.1.1 接口的概念及声明 182
8.1.2 接口的实现 183
8.1.3 继承多个接口 184
8.1.4 接口与抽象类的区别 185
8.2 委托 185
8.2.1 委托的声明 186
8.2.2 实例化委托 186
8.2.3 调用委托 186
8.3 事件 187
8.3.1 定义事件 187
8.3.2 订阅事件 188
8.3.3 引发事件 188
8.4 综合实训 189
8.5 习题 191
第9章 泛型 194
9.1 泛型概述 194
9.1.1 泛型的概念 194
9.1.2 泛型的特点 194
9.1.3 泛型的定义 196
9.2 泛型集合 197
9.2.1 List〈T〉泛型集合类 197
9.2.2 Dictionary〈K,V〉泛型集合类 202
9.3 泛型接口 205
9.3.1 .NETFramework常用泛型接口 205
9.3.2 自定义泛型接口 206
9.4 泛型类 206
9.4.1 定义泛型类 207
9.4.2 定义泛型类的注意事项 207
9.5 泛型方法 208
9.6 综合实训 208
9.7 习题 212
第10章 异常处理和程序调试技术 213
10.1 异常处理 213
10.1.1 异常处理的概念 213
10.1.2 典型的try...catch异常处理语句 214
10.1.3 使用finally块 215
10.1.4 使用throw关键字显示抛出异常 216
10.2 调试技术 217
10.2.1 程序错误分类 217
10.2.2 基本调试概念——断点 218
10.2.3 程序的调试信息 220
10.3 综合实训 223
10.4 习题 225
第11章 Windows应用程序常用控件 227
11.1 多窗体的使用 227
11.1.1 窗体间的调用 227
11.1.2 多文档(MDI)窗体 229
11.1.3 继承窗体 231
11.2 选择类控件 232
11.2.1 单选按钮(RadioButton)控件 232
11.2.2 复选框(CheckBox)控件 233
11.2.3 组合框(ComboBox)控件 233
11.2.4 列表框(ListBox)控件 235
11.3 分组类控件 239
11.3.1 容器控件(Panel) 239
11.3.2 分组框控件(GroupBox) 239
11.3.3 选项卡控件(TabControl) 239
11.4 菜单、工具栏和状态栏控件 240
11.4.1 菜单控件 240
11.4.2 工具栏控件(toolStrip) 241
11.4.3 状态栏控件(StatusStrip) 242
11.5 其他控件 246
11.5.1 日期控件和月历控件 246
11.5.2 定时控件(Timer) 248
11.5.3 进度条控件(ProgressBar) 250
11.5.4 图片控件(PictureBox) 251
11.5.5 存储图像控件(ImageList) 252
11.5.6 列表视图控件(ListView) 253
11.5.7 树控件(TreeView) 259
11.6 综合实训 260
11.7 习题 264
第12章 使用.NET数据提供程序访问数据库 267
12.1 ADO.NET简介 267
12.1.1 ADO.NET的特点 267
12.1.2 ADO.NET组件及结构 268
12.2 连接数据库:Connection对象 270
12.2.1 Connection对象的常用属性与方法 270
12.2.2 连接数据库的步骤 271
12.3 执行SQL语句:Command对象 272
12.3.1 Command对象的常用属性和方法 272
12.3.2 使用Command对象的步骤 273
12.4 读取数据:DataReader对象 279
12.4.1 DataReader对象的常用属性及方法 279
12.4.2 使用DataReader对象的步骤 280
12.5 数据适配器:DataAdapter对象 284
12.5.1 DataAdapter对象常用属性和方法 284
12.5.2 使用DataAdapter对象的步骤 285
12.6 综合实训 286
12.7 习题 290
第13章 使用DataSet访问数据库 292
13.1 数据集——DataSet对象 292
13.1.1 DataSet对象简介 292
13.1.2 DataSet对象中的常用属性与方法 293
13.1.3 使用DataSet对象的步骤 294
13.2 DataGridView控件 296
13.3 综合实训 303
13.4 习题 305
第14章 图形图像编程(GDI+) 307
14.1 GDI+概述 307
14.2 Graphics类 308
14.3 Pen类和Brush类的使用 309
14.3.1 创建Pen类对象 309
14.3.2 Brush类的使用 311
14.4 基本绘图 316
14.4.1 绘制直线和矩形 316
14.4.2 绘制椭圆、圆弧和扇形 318
14.4.3 绘制多边形 321
14.5 综合实训 322
14.6 习题 331
第15章 文件和流 332
15.1 文件相关类 332
15.1.1 System.IO命名空间 332
15.1.2 磁盘信息类DriveInfo 334
15.1.3 文件类File的使用 336
15.1.4 文件夹Directory类的使用 337
15.2 数据流 338
15.2.1 流操作介绍 338
15.2.2 文件流类 338
15.2.3 文本文件的读写操作 341
15.2.4 二进制文件的读写操作 343
15.3 对话框控件 347
15.3.1 打开文件对话框OpenFileDialog 348
15.3.2 保存文件对话框SaveFileDialog 348
15.3.3 字体对话框FontDialog 348
15.3.4 颜色对话框ColorDialog 349
15.4 综合实训 349
15.5 习题 360
第16章 多线程简介 361
16.1 线程简介 361
16.1.1 线程的概念 361
16.1.2 单线程与多线程程序 362
16.2 线程的基本操作 362
16.2.1 线程(Thread)类的属性和方法 363
16.2.2 创建线程 363
16.2.3 线程的控制 364
16.3 多线程同步 369
16.3.1 多线程同步概述 369
16.3.2 用Lock语句实现互斥线程 369
16.3.3 用Mutex类实现互斥线程 370
16.3.4 用Monitor类实现互斥线程 371
16.4 综合实训 372
16.5 习题 376
第17章 网络编程技术 377
17.1 网络编程基础 377
17.1.1 通信协议 377
17.1.2 标识资源 379
17.1.3 套接字编程 379
17.2 网络编程类的使用 380
17.2.1 Dns类 380
17.2.2 IPAddress类 381
17.2.3 IPEndPoint类 382
17.2.4 Socket网络编程相关类 382
17.3 综合实训 386
17.4 习题 400
第18章 公司人事管理系统 401
18.1 系统分析 401
18.1.1 需求分析 401
18.1.2 可行性分析 402
18.2 系统功能结构 402
18.2.1 构建开发环境 403
18.2.2 系统预览 403
18.3 数据库设计 405
18.3.1 数据库分析 406
18.3.2 数据库实体E-R图 406
18.3.3 数据库表的设计 411
18.4 开发前的准备工作 414
18.5 用户登录模块 421
18.5.1 定义数据库连接方法 422
18.5.2 防止窗口被关闭 424
18.5.3 验证用户名和密码 425
18.6 人事档案管理模块 427
18.6.1 界面开发 427
18.6.2 界面处理代码的开发 427
18.6.3 添加和编辑员工照片 444
18.7 用户设置模块设计 445
18.7.1 添加/修改用户信息 445
18.7.2 删除用户基本信息 449
18.7.3 设置用户权限 450
18.8 数据库维护模块 451
18.8.1 备份数据库 451
18.8.2 还原数据库 452
18.9 制作安装软件 452
18.10 项目总结 455
附录 456
附录1 Visual Studio 2008快捷键 456
附录2 常用ASCII码参照表 457
附录3 C#主要控件名简写对照表 458
附录4 C#变量命名规则 459