第1章 认识C# 1
1.1 什么是.NET 1
1.1.1 从用户代码到机器代码 2
1.1.2 中间语言介绍 3
1.2 第一个简单的控制台应用程序 4
任务1.1:打印一行文字 4
1.3 简单的Windows应用程序 6
任务1.2:在对话框中显示一行文字 6
任务1.3:在文本框中显示一行文字 7
1.4 习题 12
第2章 C#编程基础 13
2.1 变量与常数 13
2.1.1 变量的含意 13
2.1.2 变量声明 15
任务2.1 计算路程 15
2.1.3 常数 18
2.2 基本数据类型 19
2.2.1 整型 20
任务2.2:整数相乘 20
2.2.2 字符数据类型 24
任务2.3:字符检查 24
2.2.3 非整型 26
任务2.4:贷款计算器 27
2.2.4 格式化输出 30
2.2.5 算术运算 31
2.2.6 基本数据类型的相互转换 32
任务2.5:隐式和强制数值转换 34
2.2.7 算术溢出及显式转换溢出 35
任务2.6:算术溢出及显式转换溢出 35
2.2.8 布尔类型 37
任务2.7:数值比较 38
2.3 面向对象程序设计初步 39
2.3.1 类和对象 39
2.3.2 消息和方法 39
2.3.3 使用现有的类 40
任务2.8:文字游戏 40
2.3.4 创建自己的类 44
任务2.9:使用可实例化类的贷款计算器 44
2.4 习题 53
第3章 程序流控制 55
3.1 选择语句 55
3.1.1 if语句 55
任务3.1:考试结果分析 56
3.1.2 if...else语句 58
任务3.2:猜数游戏 59
3.1.3 条件运算符 60
任务3.3:显示时间 61
3.1.4 if...else if...else语句 63
任务3.4:工资发放 63
3.1.5 if语句的嵌套 65
任务3.5:求数的绝对值 65
3.1.6 switch语句 67
任务3.6:计算器 68
3.1.7 复合赋值运算符 71
3.1.8 条件逻辑运算符和逻辑运算符 71
3.2 循环语句 72
3.2.1 while语句 72
任务3.7:计算复利存款(一) 72
3.2.2 do...while语句 75
任务3.8:计算复利存款(二) 75
3.2.3 for语句 76
任务3.9:打印字母表及对应的ASCII码(一) 77
3.2.4 嵌套循环 79
任务3.10:打印字母表及对应的ASCII码(二) 79
3.3 跳转语句 80
3.3.1 goto语句 80
任务3.11:找数 81
任务3.12:自动售货机 82
3.3.2 break语句 83
任务3.13:打印字母表及对应的ASCII码(三) 83
3.3.3 continue语句 84
任务3.14:找数 84
3.3.4 运算符的优先级 85
3.4 习题 86
第4章 数组与方法 88
4.1 数组 88
任务4.1:计算月平均降雨量 89
4.1.1 数组初始化 94
任务4.2:显示月名称 94
4.1.2 可变长度的数组的声明 95
任务4.3:创建数组 96
4.2 多维数组 98
4.2.1 多维数组的声明和创建 98
4.2.2 多维数组初始化 99
4.2.3 二维数组应用举例 99
任务4.4:二维数组 99
任务4.5:学生考试成绩统计 101
4.3 值类型与引用类型 102
4.4 方法 105
4.4.1 传值方式 106
4.4.2 以传值方式传递值类型参数 106
任务4.6:移动矩形 106
4.4.3 以传值方式传递引用类型参数 111
任务4.7:以传值方式传递数组 112
4.4.4 传引用方式 116
4.4.5 以传引用方式传递值类型参数 116
任务4.8:调用方法获得多个值(使用ref参数) 117
任务4.9:调用方法获得多个值(使用out参数) 119
任务4.10:改变矩形位置 120
4.4.6 以传引用方式传递引用类型参数 122
任务4.11:调用方法为实参创建新的对象 122
4.5 习题 125
第5章 基于对象的程序设计 127
5.1 类、对象和封装 127
5.2 字段 128
任务5.1:改写贷款计算器 129
5.2.1 常数和只读字段 131
5.2.2 成员访问控制 132
5.3 属性 133
任务5.2:声明和使用属性 133
5.3.1 类作用域 138
5.3.2 索引器 138
任务5.3:贷款分析 139
5.3.3 属性与字段、属性和方法的比较 144
5.3.4 使用this关键字 145
任务5.4:雇员税金计算 145
5.4 实例构造函数 147
5.4.1 默认实例构造函数 147
任务5.5:定义Person类 147
5.4.2 默认初始化字段 149
5.4.3 显式初始化字段 149
5.4.4 实例构造函数声明 150
任务5.6:定义矩形(一) 150
5.5 实例构造函数重载 154
5.5.1 使用重载的实例构造函数 154
任务5.7:定义矩形(二) 154
5.5.2 调用同类中的其他构造函数 156
任务5.8:调用其他构造函数 156
5.6 静态成员与实例成员 157
5.6.1 静态字段和实例字段 157
任务5.9:自动编号 157
5.6.2 静态构造函数 159
任务5.10:自动编号从随机整数开始 159
5.6.3 静态方法 160
5.6.4 静态成员和实例成员的特征 160
5.7 以对象为参数与以返回值为对象 162
5.7.1 以对象为参数 162
任务5.11:放大矩形 162
任务5.12:以传引用方式传递对象参数 164
5.7.2 以返回值为对象 165
任务5.13:放大矩形的副本 165
5.8 方法的重载 166
任务5.14:定义矩形(三) 167
5.9 使用ArrayList类 169
任务5.15:地址簿 169
5.9.1 ArrayList类的常用属性 175
5.9.2 ArrayList类的常用方法 175
5.10 习题 176
第6章 继承 178
6.1 直接基类与派生类 179
任务6.1:定义基类Person 179
任务6.2:定义派生类Student(一) 180
6.2 派生类实例构造函数声明 182
任务6.3:复数加法 182
6.2.1 运算符重载 183
任务6.4:复数减法 184
6.2.2 显式调用直接基类实例构造函数 188
任务6.5:调用基类实例构造函数 188
6.3 隐藏从基类继承的成员 189
任务6.6:隐藏继承字段 189
6.4 含直接基类构造函数的构造函数声明 190
任务6.7:定义派生类Student(二) 190
6.5 虚拟方法与重写方法 191
任务6.8:多级继承层次结构 192
6.5.1 继承中构造函数的执行过程 201
6.5.2 重载、重写和隐藏的比较 201
6.5.3 垃圾回收和析构函数 202
任务6.9:保存状态信息 203
任务6.10:保存雇员状态信息 204
6.6 习题 205
第7章 多态性 206
7.1 抽象方法与抽象类 206
7.1.1 抽象方法和抽象属性 207
任务7.1:多态性及实现(一) 207
7.1.2 抽象类继承 212
任务7.2:多态性及实现(二) 213
7.2 接口 218
7.2.1 声明和实现接口 218
任务7.3:创建和使用接口 218
7.2.2 接口成员的显式实现 222
任务7.4:用接口实现不同的度量衡系统 223
7.2.3 接口和抽象类 224
任务7.5:薪水发放系统 224
7.2.4 接口与抽象类的比较 230
7.3 代理 231
7.3.1 使用代理 231
任务7.6:使用代理实现运算 231
7.3.2 组合代理 234
任务7.7:使用组合代理实现运算 234
7.3.3 代理应用举例 236
任务7.8:用代理排序数组 236
7.4 事件 240
7.4.1 自定义事件 240
任务7.9:密码监听器 240
7.4.2 声明持有事件数据的类 244
任务7.10:能够获取新旧密码的密码监听器 244
7.5 习题 245
第8章 控件及GUI程序设计 247
8.1 滚动条 247
任务8.1:调色板 248
8.1.1 滚动条常用属性 250
8.1.2 滚动条常用事件 251
8.1.3 用户定义的颜色 252
8.2 Windows窗体事件及事件处理程序 252
任务8.2:计算器 253
8.2.1 Button按钮的常用属性 257
8.2.2 Button按钮的常用事件 258
8.3 复选框和单选按钮 258
任务8.3:Font程序 258
8.3.1 如何设置字体 260
8.3.2 复选框的常用属性 260
8.3.3 复选框的常用事件 261
8.3.4 单选按钮的常用属性 261
8.3.5 单选按钮的常用事件 262
8.4 Connection对象和Command对象 262
8.4.1 Connection对象 262
任务8.4:创建并打开一个到SQL Server的连接 262
8.4.2 Command对象 264
任务8.5:操作数据库 264
8.5 使用SqlDataReader 266
任务8.6:雇员信息管理 266
8.6 创建三层应用程序 278
任务8.7:增强雇员信息管理程序 279
8.7 PictureBox图片框控件 285
任务8.8:雇员相片管理 285
8.7.1 PictureBox的常用属性 288
8.7.2 PictureBox的常用事件 289
8.7.3 Image.FromFile方法 289
8.8 组合框控件和文本框控件 289
任务8.9:登录程序 290
8.8.1 ComboBox的常用属性和方法 294
8.8.2 列表框控件的常用事件 297
8.8.3 TextBox的常用属性 297
8.8.4 TextBox的常用事件 299
8.9 列表框 300
任务8.10:产品信息管理 300
8.9.1 列表框控件的常用属性 315
8.9.2 列表框控件的常用方法 316
8.9.3 列表框控件的常用事件 318
8.10 带复选框的列表框 318
任务8.11:CheckedListBoxTest程序 318
8.10.1 复选列表框控件的常用属性 321
8.10.2 复选列表框控件的常用方法和事件 321
8.11 习题 321
第9章 使用ADO.NET进行数据库编程 324
9.1 数据表DataTable 325
任务9.1:客户信息管理 326
9.2 数据集和数据适配器 336
9.2.1 通过数据集更新数据源 336
任务9.2:客户信息管理 337
9.2.2 将数据集绑定到DataGrid控件 351
任务9.3:以浏览方式管理客户信息 351
9.2.3 行状态与行版本 353
9.3 Windows窗体中的数据绑定 354
9.3.1 简单绑定控件属性 355
任务9.4:类别信息管理(一) 355
9.3.2 使用CurrencyManager 361
9.4 创建和使用数据视图 362
9.4.1 使用数据视图查询数据 362
任务9.5:类别信息管理(二) 362
9.4.2 数据视图的常用属性及方法 366
9.5 DataRelation对象 368
9.5.1 创建DataRelation对象 369
任务9.6:类别信息管理(三) 369
9.5.2 导航表间的关系 373
9.6 习题 373
第10章 与用户交互 375
10.1 菜单 375
10.1.1 创建菜单 375
任务10.1:随机画矩形 376
10.1.2 Timer控件 379
10.1.3 MainMenu控件的常用属性 379
10.1.4 快捷菜单 380
任务10.2:实现快捷菜单 380
10.2 鼠标事件 381
任务10.3:用鼠标画直线和画矩形 381
10.2.1 鼠标事件 385
10.2.2 鼠标事件发生顺序 386
10.3 键盘事件处理 386
任务10.4:键盘事件程序 387
10.4 通用对话框 390
10.4.1 “打开文件”对话框 390
任务10.5:打开文件 391
10.4.2 “保存文件”对话框 394
任务10.6:保存文件 394
10.4.3 “字体”对话框 395
任务10.7:改变文本的字体 395
10.4.4 “颜色”对话框 397
任务10.8:改变文本颜色 397
10.5 编写多文档界面应用程序 398
任务10.9:字处理器 398
10.6 习题 407
第11章 用流进行文件输入和输出 408
11.1 文件与流 408
11.1.1 FileStream 409
任务11.1:使用FileStream 409
任务11.2:将图像文件存入数据库 411
任务11.3:从数据库读取Image类型数据并保存为图像文件 413
11.1.2 随机访问文件 414
任务11.4:定位操作 415
11.1.3 向文件追加数据 416
任务11.5:向文件追加数据 416
11.2 内存和缓冲流 417
任务11.6:显示图像 417
11.3 StreamReader和StreamWriter 419
任务11.7:电话号码簿 419
11.4 二进制读取器和写出器 422
任务11.8:学生名册 423
11.5 序列化对象 426
任务11.9:序列化对象 426
11.6 可视化继承 428
任务11.10:创建基窗体 429
任务11.11:创建可视继承窗体 430
11.7 顺序访问文件 431
任务11.12:产品类别管理程序 432
11.8 随机存取文件 444
任务11.13:产品供应商管理程序 444
11.9 使用序列化对象存储数据 453
任务11.14:产品管理程序 454
11.10 习题 465