第1篇 程序基础篇 1
第1章 Visual Studio快速入门 1
1.1 从.NET Framework说起 2
1.1.1 公共语言运行库 2
1.1.2 .Net Framework类库 2
1.1.3 程序的编译 3
1.2 认识Visual Studio 2017 3
1.2.1 Visual Studio 2017的版本 4
1.2.2 下载、安装Visual Studio 2017 4
1.2.3 启动Visual Studio 2017 7
1.2.4 扩充其他模块 9
1.3 Visual Studio 2017的工作环境 11
1.3.1 “解决方案资源管理器”窗口 11
1.3.2 工具箱 12
1.3.3 “属性”窗口 13
1.3.4 工作区 14
1.4 创建项目和获取帮助 16
1.4.1 启动软件和创建项目 16
1.4.2 打开和关闭项目 19
1.4.3 项目的启动和卸除 20
1.4.4 帮助(Help)查看器 22
1.5 重点整理 25
1.6 课后习题 26
第2章 开始编写应用程序 27
2.1 C#应用程序的两个模板 28
2.1.1 认识Visual C#语言 28
2.1.2 我的控制台程序 28
2.1.3 生成可执行程序再运行 31
2.1.4 Windows窗体应用程序 32
2.2 Visual C#的编写风格 36
2.2.1 程序语句 36
2.2.2 程序的编排 37
2.2.3 在程序中添加注释 39
2.3 C#程序设计语言的结构 40
2.3.1 命名空间 40
2.3.2 善用IntelliSense功能 42
2.3.3 输入与输出 45
2.3.4 格式化输出 47
2.4 重点整理 50
2.5 课后习题 50
第3章 数据与变量 52
3.1 认识通用类型系统 53
3.1.1 整数类型 53
3.1.2 浮点数类型和货币 58
3.1.3 其他数据类型 59
3.2 变量与常数 60
3.2.1 标识符的命名规则 61
3.2.2 关键字 61
3.2.3 声明变量 62
3.2.4 常数 64
3.3 自定义类型与转换 65
3.3.1 枚举类型 65
3.3.2 结构 67
3.3.3 隐式类型转换 69
3.3.4 显式类型转换 71
3.4 运算符 74
3.4.1 算术运算符 75
3.4.2 赋值运算符 76
3.4.3 关系运算符 77
3.4.4 逻辑运算符 79
3.4.5 运算符的优先级 80
3.5 重点整理 81
3.6 课后习题 81
第4章 流程控制 83
4.1 认识结构化程序 84
4.2 条件选择 84
4.2.1 单一条件选择 85
4.2.2 双重条件选择 87
4.2.3 嵌套if语句 89
4.2.4 多重条件选择 92
4.3 循环 96
4.3.1 for循环 96
4.3.2 while循环 100
4.3.3 do/while循环 102
4.3.4 嵌套for循环语句 103
4.3.5 其他语句 105
4.4 重点整理 106
4.5 课后习题 107
第5章 数组和字符串 109
5.1 数组 110
5.1.1 声明一维数组 110
5.1.2 数组元素的存取 112
5.2 Array类 114
5.2.1 排序与查找 114
5.2.2 改变数组的大小 117
5.2.3 数组的复制 118
5.3 数组结构面面观 120
5.3.1 创建二维数组 120
5.3.2 二维数组初始化 120
5.3.3 不规则数组 124
5.3.4 隐式类型数组 126
5.4 字符和字符串 128
5.4.1 转义字符序列 128
5.4.2 String类创建字符串 128
5.4.3 字符串常用方法 130
5.4.4 StringBuilder类修改字符串内容 134
5.5 重点整理 138
5.6 课后习题 138
第2篇 对象学习篇 141
第6章 学习面向对象 141
6.1 面向对象的基础 142
6.1.1 认识对象 142
6.1.2 提供蓝图的类 142
6.1.3 抽象化概念 143
6.2 类、对象和其成员 144
6.2.1 定义类 144
6.2.2 实例化对象 145
6.2.3 访问权限 147
6.2.4 定义方法成员 147
6.2.5 类属性和存取器 150
6.3 对象旅程 155
6.3.1 产生构造函数 155
6.3.2 析构函数回收资源 157
6.3.3 使用默认构造函数 158
6.3.4 构造函数的重载 158
6.3.5 对象的初始设置 160
6.4 静态类 161
6.4.1 静态属性 161
6.4.2 类静态方法 163
6.4.3 私有的构造函数 164
6.5 重点整理 167
6.6 课后习题 168
第7章 方法和传递机制 171
7.1 方法是什么 172
7.1.1 系统内建的方法 172
7.1.2 方法的声明 174
7.1.3 方法的重载 179
7.2 参数的传递机制 182
7.2.1 传值调用 183
7.2.2 传址调用 184
7.3 方法的传递对象 186
7.3.1 以对象为传递对象 186
7.3.2 参数params 187
7.3.3 关键字ref和out的不同 188
7.3.4 更具弹性的命名参数 190
7.3.5 选择性参数 191
7.4 了解变量的作用域 192
7.5 重点整理 194
7.6 课后习题 194
第8章 继承、多态和接口 197
8.1 了解继承 198
8.1.1 特化和泛化 198
8.1.2 组合关系 199
8.1.3 为什么要有继承机制 199
8.2 单一继承制 199
8.2.1 继承的存取(访问) 200
8.2.2 访问权限修饰词protected 203
8.2.3 调用基类成员 205
8.2.4 隐藏基底成员 211
8.3 探讨多态 215
8.3.1 父、子类产生方法重载 215
8.3.2 覆盖基类 216
8.3.3 实现多态 217
8.4 接口和抽象类 221
8.4.1 定义抽象类 221
8.4.2 认识密封类 223
8.4.3 接口的声明 224
8.4.4 如何实现接口 225
8.4.5 实现多个接口 227
8.4.6 接口实现多态 229
8.5 重点整理 230
8.6 课后习题 231
第9章 泛型、集合和异常处理 234
9.1 泛型 235
9.1.1 认识泛型与非泛型 235
9.1.2 为什么使用泛型 236
9.1.3 定义泛型 237
9.1.4 泛型方法 239
9.2 浅谈集合 240
9.2.1 System.Collections.Generic命名空间 241
9.2.2 认识索引键/值 241
9.2.3 使用索引 244
9.2.4 顺序访问的集合 250
9.3 委托 252
9.3.1 认识委托 252
9.3.2 Lambda表达式 255
9.4 异常情况的处理 256
9.4.1 认识Exception类 256
9.4.2 简易的异常处理器 257
9.4.3 finally语句 261
9.4.4 使用throw抛出异常情况 262
9.5 重点整理 263
9.6 课后习题 264
第3篇 Windows接口篇 267
第10章 Windows窗体的运行 267
10.1 Windows窗体的基本操作 268
10.1.1 创建Windows窗体项目 268
10.1.2 创建用户界面 269
10.1.3 编写程序代码 273
10.1.4 存储程序的位置 276
10.2 Windows的运行 276
10.2.1 部分类是什么 277
10.2.2 Main()主程序在哪里 278
10.2.3 消息循环 279
10.2.4 控件与环境属性 280
10.3 窗体与按钮 284
10.3.1 窗体的属性 284
10.3.2 窗体的常用方法 286
10.3.3 窗体的事件 286
10.3.4 Button控件 289
10.4 MessageBox类 289
10.4.1 显示消息 290
10.4.2 按钮的枚举成员 290
10.4.3 图标的枚举成员 291
10.4.4 DialogResult如何接收 292
10.5 重点整理 295
10.6 课后习题 295
第11章 公共控件 298
11.1 显示信息 299
11.1.1 标签控件 299
11.1.2 超链接控件 302
11.1.3 窗体上控件的顺序 307
11.2 文字编辑 309
11.2.1 TextBox控件 310
11.2.2 RichTextBox控件 318
11.2.3 计时的Timer组件 324
11.3 日期处理 326
11.3.1 MonthCalendar控件 326
11.3.2 DateTimePicker 332
11.4 重点整理 336
11.5 课后习题 337
第12章 提供互动的对话框 339
12.1 认识对话框 340
12.2 文件对话框 340
12.2.1 OpenFileDialog 340
12.2.2 SaveFileDialog 343
12.2.3 FolderBrowserDialog 347
12.3 设置字体与颜色 351
12.3.1 FontDialog 351
12.3.2 ColorDialog 352
12.4 支持打印的组件 356
12.4.1 PrintDocument控件 356
12.4.2 PrintDialog 361
12.4.3 PageSetupDialog 362
12.4.4 PrintPreviewDialog 363
12.5 重点整理 368
12.6 课后习题 369
第13章 选项控件和菜单 371
13.1 具有选项的控件 372
13.1.1 具有容器的GroupBox 372
13.1.2 单选按钮 373
13.1.3 复选框 376
13.2 具有列表的控件 378
13.2.1 下拉列表 378
13.2.2 列表框 383
13.2.3 CheckedListBox 385
13.3 菜单 386
13.3.1 MenuStrip控件 387
13.3.2 直接编辑菜单项 388
13.3.3 用项集合编辑器生成菜单项 390
13.3.4 菜单常用的属性 395
13.4 与菜单有关的外围控件 399
13.4.1 ContextMenuStrip控件 400
13.4.2 ToolStrip 402
13.4.3 状态栏 405
13.5 重点整理 406
13.6 课后习题 407
第14章 鼠标、键盘、多文档 409
14.1 多文档界面 410
14.1.1 认识多文档界面 410
14.1.2 MDI窗体的成员 412
14.1.3 窗体的排列 413
14.2 键盘事件 414
14.2.1 认识键盘事件 414
14.2.2 KeyDown和KeyUp事件 415
14.2.3 KeyPress事件 420
14.3 鼠标事件 422
14.3.1 认识鼠标事件 422
14.3.2 获取鼠标信息 423
14.3.3 鼠标的拖曳功能 425
14.4 图形设备接口 428
14.4.1 窗体的坐标系统 429
14.4.2 产生画布 430
14.4.3 绘制图形 431
14.4.4 绘制线条、几何图形 433
14.4.5 绘制几何图形 437
14.4.6 字体和笔刷 439
14.5 重点整理 442
14.6 课后习题 442
第4篇 应用篇 444
第15章 IO与数据处理 444
15.1 数据流与System.IO 445
15.2 文件与数据流 445
15.2.1 文件目录 446
15.2.2 文件信息 450
15.2.3 使用File静态类 455
15.3 标准数据流 458
15.3.1 FileStream 459
15.3.2 StreamWriter写入器 462
15.3.3 StreamReader读取器 463
15.4 重点整理 465
15.5 课后习题 466
第16章 Access数据库和ADO组件 467
16.1 数据库基础 468
16.1.1 数据库系统 468
16.1.2 认识关系数据库 468
16.2 认识ADO.NET 469
16.2.1 System.Data命名空间 469
16.2.2 ADO.NET架构 470
16.3 获取数据源 471
16.3.1 生成DataSet 472
16.3.2 查看“数据源”窗口 476
16.3.3 DataGridView控件 477
16.4 简易SQL指令 482
16.4.1 使用查询生成器 482
16.4.2 使用查询窗口 485
16.4.3 SELECT子句 487
16.4.4 WHERE子句 487
16.4.5 动态查询 488
16.5 用程序代码来提取、存入数据 490
16.5.1 导入相关命名空间 490
16.5.2 用Connection对象连接数据库 491
16.5.3 Command对象执行SQL指令 492
16.5.4 DataReader显示内容 493
16.5.5 DataAdapter加载数据 495
16.6 重点整理 498
16.7 课后习题 499
习题答案 501