入  门  篇
第1章  .NET基础	3
1.1  .NET	3
1.2  .NET Framework	3
1.3  .NET Core	4
1.4  使用.NET Framework或.NET Core编写应用程序	5
1.4.1  CIL和JIT	5
1.4.2  程序集	6
1.5  C#语言介绍	6
1.5.1  C#语言的发展历史	6
1.5.2  C#语言的特点	6
1.5.3  C#语言的应用领域	7
1.6  小结	8
1.7  练习	8
第2章  C#初识	9
2.1  编写第一个C#程序	9
2.2  C#程序结构概述	10
2.2.1  命名空间	11
2.2.2  类	11
2.2.3  Main()方法	12
2.2.4  C#语句和注释	12
2.2.5  关键字与标识符	13
2.3  小结	14
2.4  练习	14
编程基础篇
第3章  变量、常量及运算符	17
3.1  变量是什么	17
3.2  变量的声明及初始化	17
3.2.1  声明变量	17
3.2.2  变量的初始化	18
3.3  数据类型	19
3.3.1  值类型	19
3.3.2  引用类型	27
3.4  变量的作用域	28
3.4.1  成员变量	28
3.4.2  局部变量	28
3.5  数据类型转换	29
3.5.1  隐式类型转换	29
3.5.2  显式类型转换	30
3.6  常量	31
3.6.1  const常量	31
3.6.2  readonly常量	32
3.6.3  静态常量和动态常量的对比	32
3.7  运算符	33
3.7.1  算术运算符	33
3.7.2  自增自减运算符	34
3.7.3  赋值运算符	35
3.7.4  关系运算符	36
3.7.5  逻辑运算符	37
3.7.6  位运算符	39
3.7.7  条件运算符	42
3.8  运算符优先级与结合性	43
3.9  案例1:整钱兑零	44
3.10  小结	45
3.11  练习	45
第4章  流程控制语句	47
4.1  流程控制概述	47
4.2  顺序结构	48
4.3  选择结构	48
4.3.1  if语句	48
4.3.2  分支语句的嵌套	51
4.3.3  switch语句	52
4.3.4  案例2:彩票	54
4.4  循环结构	55
4.4.1  while循环	56
4.4.2  do…while循环	56
4.4.3  for循环	57
4.4.4  for循环的变体讨论	58
4.4.5  循环的嵌套	60
4.4.6  案例3:减法表达式自动生成器	60
4.5  跳转语句	61
4.5.1  break语句	61
4.5.2  continue语句	62
4.5.3  break与continue的区别	62
4.6  案例4:显示素数	63
4.7  小结	64
4.8  练习	64
第5章  数组与字符串	67
5.1  数组概述	67
5.2  一维数组	68
5.2.1  一维数组初始化	69
5.2.2  一维数组的使用	70
5.2.3  案例5:生成一副扑克牌	70
5.3  二维数组	71
5.3.1  二维数组的创建	71
5.3.2  二维数组的初始化	71
5.3.3  二维数组的使用	72
5.3.4  案例6:数独游戏判定	72
5.4  不规则数组(交错数组)	73
5.5  C#中的Array类及数组的遍历操作	75
5.5.1  Array类	75
5.5.2  数组的遍历操作	76
5.6  字符串	76
5.6.1  字符串的声明	77
5.6.2  字符串的初始化	77
5.6.3  字符串的常用操作	78
5.7  StringBuilder类	87
5.7.1  设置StringBuilder对象的容量	88
5.7.2  修改StringBuilder字符串	88
5.8  String和StringBuilder的区别	89
5.9  小结	90
5.10  练习	90
第6章  函数	93
6.1  函数概述	93
6.2  定义和使用函数	93
6.3  返回值	95
6.4  参数	96
6.4.1  值参数	97
6.4.2  ref参数	97
6.4.3  out参数	97
6.4.4  params参数	97
6.4.5  可选参数	98
6.4.6  命名参数	98
6.5  函数重载和递归	98
6.5.1  函数重载	98
6.5.2  函数的递归	98
6.6  常用函数	101
6.6.1  数学函数	101
6.6.2  日期时间函数	101
6.7  案例7:生成随机验证码	104
6.8  小结	105
6.9  练习	105
面向对象基础篇
第7章  面向对象思想编程基础	109
7.1  面向对象思想概述	109
7.2  对象和类概述	110
7.2.1  对象	110
7.2.2  类	110
7.2.3  类与对象的关系	110
7.2.4  字段、属性和方法	111
7.2.5  对象的生命周期	111
7.3  定义类	112
7.4  定义类成员	112
7.4.1  静态成员	113
7.4.2  实例成员	113
7.4.3  类成员的访问权限	113
7.4.4  定义字段	114
7.4.5  定义方法	114
7.4.6  定义属性	115
7.4.7  定义索引器	117
7.5  对象的创建、使用及销毁	118
7.5.1  构造函数	119
7.5.2  析构函数	121
7.5.3  对象的创建和初始化	122
7.5.4  访问对象的属性和方法	124
7.5.5  对象的销毁	124
7.6  this关键字	124
7.7  案例8:以面向对象的思想生成扑克牌	125
7.8  小结	129
7.9  练习	129
第8章  继承、多态、委托与事件	131
8.1  继承	131
8.1.1  继承的实现	132
8.1.2  继承中的对象构造与析构	132
8.1.3  System.Object类	133
8.1.4  装箱与拆箱	134
8.1.5  派生类访问基类成员	135
8.2  密封方法和密封类	137
8.3  多态	137
8.3.1  方法重写	138
8.3.2  抽象方法和抽象类	139
8.3.3  接口	140
8.3.4  案例9:模拟银行存取系统案例	141
8.3.5  接口的显式实现	144
8.3.6  ICloneable接口、浅拷贝和深拷贝	144
8.3.7  实现类、抽象类与接口的继承问题	146
8.4  委托	147
8.4.1  委托的定义	147
8.4.2  委托的实例化	148
8.4.3  引用匿名方法的委托	148
8.4.4  多播委托	149
8.4.5  委托中的协变与逆变	150
8.4.6  .NET Framework中预定义的委托	150
8.5  事件	152
8.6  小结	154
8.7  练习	154
第9章  异常	155
9.1  异常概述	155
9.2  try…catch…finally	155
9.3  异常处理的流程	156
9.4  C#中的异常类	156
9.5  自定义异常类	157
9.6  小结	157
9.7  练习	157
面向对象进阶篇
第10章  泛型	161
10.1  概述	161
10.2  泛型的概念	162
10.3  泛型类	162
10.3.1  泛型类的声明与使用	162
10.3.2  可空类型	163
10.3.3  Null合并运算符	164
10.3.4  Null检查运算符	165
10.4  *泛型方法	165
10.5  *泛型接口	166
10.6  *泛型委托	167
10.7  *泛型约束	167
10.8  *泛型与继承	168
10.9  案例10:泛型矩阵	169
10.10  小结	174
10.11  练习	174
第11章  集合	175
11.1  集合概述	175
11.2  常见的集合类型	177
11.2.1  非泛型集合ArrayList	177
11.2.2  自定义强类型集合	179
11.2.3  泛型集合List<T>	179
11.2.4  泛型集合HashSet<T>	181
11.2.5  键值对集合哈希表	182
11.2.6  泛型键值对集合Dictionary<TKey, TValue>	184
11.2.7  案例11:单词出现次数统计	184
11.3  *迭代器	186
11.4  *比较	188
11.4.1  值比较	188
11.4.2  运算符重载	189
11.4.3  类型比较	190
11.4.4  IComparable和IComparer接口	192
11.5  类型转换	193
11.5.1  重载转换运算符	193
11.5.2  as运算符	194
11.6  小结	194
11.7  练习	195
第12章  *高级C#技术	196
12.1  类型推理	196
12.2  动态查找	197
12.3  Tuple和ValueTuple	198
12.3.1  Tuple	198
12.3.2  ValueTuple	200
12.4  扩展方法	202
12.5  仅限init的资源库	203
12.6  记录类型record	204
12.7  小结	205
12.8  练习	205
数据操作篇
第13章  LINQ技术	209
13.1  LINQ概述	209
13.2  匿名类型	210
13.3  查询表达式语法和查询方法语法	211
13.3.1  查询表达式语法	211
13.3.2  查询方法语法	217
13.4  延迟执行	230
13.5  案例12:商品信息分页展示	231
13.6  小结	235
13.7  练习	235
第14章  文件、流和序列化	237
14.1  文件	237
14.1.1  文件概述	237
14.1.2  System.IO命名空间	237
14.2  路径	238
14.2.1  Path类	238
14.2.2  绝对路径和相对路径	239
14.2.3  System.Environment类	239
14.3  DriveInfo类	240
14.4  文件和目录相关类	241
14.4.1  File类和Directory类	241
14.4.2  FileInfo类和DirectoryInfo类	247
14.5  流及流的操作	248
14.5.1  Stream基类	248
14.5.2  流的读取器与写入器	250
14.5.3  FileStream	255
14.5.4  MemoryStream	259
14.5.5  BufferedStream	260
14.6  *序列化与反序列化	261
14.6.1  序列化与反序列化概述	261
14.6.2  3种序列化技术及序列化规则	262
14.7  案例13:网络爬虫	264
14.8  小结	266
14.9  练习	266
第15章  数据访问技术	267
15.1  数据库概述	267
15.2  结构化查询语言	267
15.3  ADO.NET概述	268
15.4  Connection对象	270
15.4.1  Connection对象概述	270
15.4.2  连接字符串	271
15.5  Command对象	272
15.5.1  创建Command对象	273
15.5.2  执行数据库操作	273
15.6  DataReader对象	276
15.6.1  DataReader对象概述	276
15.6.2  使用DataReader对象读取查询结果	277
15.7  ADO.NET的数据访问模型	278
15.7.1  连接模式	278
15.7.2  断开连接模式	278
15.7.3  DataSet对象	279
15.7.4  DataAdapter对象	280
15.8  事务处理	283
15.9  案例14:商品销售统计	284
15.10  小结	289
15.11  练习	289
表现层技术篇
第16章  桌面编程WPF技术	293
16.1  WPF程序开发入门	293
16.1.1  WPF概述	293
16.1.2  XAML基础	294
16.1.3  依赖属性和附加属性	299
16.1.4  XAML中的事件	300
16.1.5  WPF程序的生命周期	301
16.2  布局和控件	304
16.2.1  控件模型	304
16.2.2  布局控件	307
16.2.3  通用界面控件	312
16.2.4  综合示例——基本控件的用法	317
16.2.5  用户控件	319
16.3  资源和样式	321
16.3.1  画刷	321
16.3.2  图形	323
16.3.3  资源	326
16.3.4  样式	329
16.3.5  动画	331
16.3.6  三维图形	331
16.4  数据绑定	332
16.4.1  认识数据绑定	332
16.4.2  创建数据绑定	334
16.4.3  数据转换	336
16.4.4  利用DataContext来作为共享数据源	337
16.4.5  数据模板——DataTemplate	337
16.5  命令	338
16.5.1  命令模型	338
16.5.2  自定义命令	340
16.6  案例15:天气预报	341
16.7  小结	344
16.8  练习	345
综合案例篇
第17章  综合案例——超市收银系统	349
17.1  需求分析	349
17.2  总体设计	349
17.2.1  系统目标	349
17.2.2  构建开发环境	349
17.2.3  系统功能结构	350
17.2.4  主要业务流程图	350
17.3  数据库设计	352
17.3.1  概念结构设计	352
17.3.2  数据库表结构	353
17.4  项目开发架构	356
17.4.1  三层架构	356
17.4.2  MVVM框架	357
17.5  类设计	358
17.5.1  业务实体类设计	358
17.5.2  数据访问层类设计	360
17.5.3  业务逻辑层类设计	363
17.5.4  表示层View类设计	363
17.5.5  表示层ViewModel类设计	364
17.6  系统主要模块开发与实现	365
17.6.1  登录模块	365
17.6.2  导航模块	368
17.6.3  收银模块	369
17.6.4  货品管理模块	377
17.6.5  销售统计模块	380
17.6.6  打折管理模块	384
17.6.7  人员管理模块	388
17.7  小结	391
参考文献	392
VI


VII