第1章 C#言概述 1
1.1 什么是C#语言 1
1.1.1 C#语言的发展历史 1
1.1.2 C#语言的特点 2
1.2.NET概述 3
1.2.1.NET平台 3
1.2.2 什么是.NET Framework 4
1.2.3.NET Framework体系结构 4
1.2.4.NET程序执行过程 6
1.3 Visual Studio 2017集成开发环境 6
1.3.1 Visual Studio 2017的安装 7
1.3.2 Visual Studio 2017界面介绍 10
1.3.3 Visual C#开发环境的配置 11
1.4 C#应用程序 12
1.4.1 控制台应用程序 13
1.4.2 Windows应用程序 14
1.4.3 Web应用程序 17
习题1 18
第2章 C#程序设计基础 20
2.1 C#程序的相关元素 20
2.1.1 标识符 20
2.1.2 关键字 21
2.1.3 命名空间 21
2.2 数据类型 22
2.2.1 值类型 23
2.2.2 引用类型 28
2.2.3 数据类型转换 29
2.2.4.NET支持的方法转换 32
2.3 常量和变量 33
2.3.1 常量的定义和使用 33
2.3.2 变量的声明和赋值 34
2.4 运算符与表达式 35
2.4.1 算术运算符 35
2.4.2 关系运算符 36
2.4.3 赋值运算符 36
2.4.4 逻辑运算符 37
2.4.5 位运算符 37
2.4.6 条件运算符 39
2.4.7 其他运算符 39
2.4.8 运算符的优先级 40
习题2 41
第3章 流程控制 44
3.1 条件选择语句 44
3.1.1 if语句 44
3.1.2 switch语句 49
3.2 循环语句 51
3.2.1 while语句 51
3.2.2 do...while语句 53
3.2.3 for语句 54
3.2.4 foreach语句 55
3.3 跳转语句 57
3.3.1 break语句 57
3.3.2 continue语句 58
3.3.3 goto语句 59
3.3.4 return语句 60
3.4 异常处理 61
3.4.1 异常处理语句 62
3.4.2 常用的异常类 66
3.4.3 用户自定义异常 66
习题3 67
第4章 面向对象程序设计基础 69
4.1 面向对象概述 69
4.1.1 面向对象的基本概念 69
4.1.2 面向对象的特点 70
4.2 类 71
4.2.1 类的声明 72
4.2.2 类的成员 73
4.2.3 嵌套类 78
4.2.4 分部类 78
4.3 对象 79
4.3.1 对象的声明和实例化 79
4.3.2 访问类的对象 80
4.4 方法 81
4.4.1 方法的声明和调用 81
4.4.2 静态方法和实例方法 82
4.4.3 方法的参数 83
4.4.4 方法的重载 86
4.5 构造函数和析构函数 87
4.5.1 构造函数 88
4.5.2 析构函数 89
习题4 90
第5章 继承与接口 93
5.1 继承 93
5.1.1 继承的定义 93
5.1.2 派生类的声明 94
5.1.3 派生类的初始化顺序 95
5.1.4 密封类 98
5.1.5 静态类 99
5.2 多态 100
5.2.1 虚方法 100
5.2.2 覆写基类方法 101
5.2.3 隐藏基类方法 102
5.2.4 抽象类和抽象方法 103
5.3 接口 104
5.3.1 接口的定义 105
5.3.2 接口的成员 105
5.3.3 接口的实现 106
5.3.4 接口的派生 108
习题5 110
第6章 数组与集合 112
6.1 数组 112
6.1.1 一维数组 112
6.1.2 二维数组 115
6.1.3 多维数组 117
6.1.4 交错数组 118
6.1.5 Array类 119
6.2 集合 121
6.2.1 集合接口 121
6.2.2 ArrayList类 122
6.2.3 Queue类 124
6.2.4 Stack类 126
6.2.5 Hashtable类 128
6.2.6 SortedList类 131
习题6 133
第7章 泛型 135
7.1 泛型概述 135
7.1.1 泛型的定义 135
7.1.2 泛型类 135
7.1.3 泛型结构 138
7.1.4 泛型接口 139
7.1.5 泛型方法 140
7.1.6 泛型的继承 141
7.2 泛型约束 141
7.3 泛型集合 146
7.3.1 List<T> 146
7.3.2 Queue<T> 150
7.3.3 Stack<T> 152
7.3.4 Dictionary<K,V>和KeyValuePair<K,V> 154
7.3.5 SortedList<K,V> 157
7.3.6 HashSet<T> 159
习题7 161
第8章 委托与事件 162
8.1 委托的定义和使用 162
8.1.1 委托的声明 162
8.1.2 委托的实例化 162
8.1.3 委托的调用 164
8.2 多播委托 165
8.3 匿名方法 167
8.4 委托中的协变和逆变 169
8.5 Lambda表达式 170
8.6 委托的应用 172
8.7 事件 174
8.7.1 事件的概念 174
8.7.2 声明事件 175
8.7.3 订阅事件 175
8.7.4 触发事件 178
8.7.5 扩展EventArgs类 180
8.7.6 事件访问器 182
习题8 183
第9章 Windows窗体应用程序设计 185
9.1 窗体设计 185
9.1.1 创建窗体 185
9.1.2 窗体的类型 187
9.1.3 窗体的属性 187
9.1.4 窗体的方法 189
9.1.5 窗体的事件 191
9.2 常用控件 193
9.2.1 Label控件 193
9.2.2 TextBox控件 195
9.2.3 RichTextBox控件 199
9.2.4 Button控件 203
9.2.5 ListBox控件 204
9.2.6 CheckedListBox控件 207
9.2.7 ComboBox控件 208
9.2.8 RadioButton控件 210
9.2.9 CheckBox控件 212
9.2.10 GroupBox控件 213
9.2.11 TabControl控件 215
9.2.12 PictureBox控件 217
9.2.13 Timer控件 218
9.3 多文档界面 219
9.4 继承窗体设计 223
9.4.1 继承窗体概述 223
9.4.2 创建继承窗体 224
习题9 225
第10章 界面设计 228
10.1 菜单 228
10.1.1 MenuStrip控件 229
10.1.2 ContexMenuStrip控件 231
10.2 工具栏和状态栏 232
10.2.1 ToolStrip控件 232
10.2.2 StatusStrip控件 234
10.3 对话框 237
10.3.1 打开文件对话框 238
10.3.2 保存文件对话框 240
10.3.3 颜色对话框 240
10.3.4 字体对话框 241
10.3.5 打印对话框 241
习题10 244
第11章 线程编程 246
11.1 线程概述 246
11.1.1 单线程简介 246
11.1.2 多线程简介 247
11.2 线程控制 248
11.2.1 Thread类 248
11.2.2 线程的创建与启动 251
11.2.3 线程的挂起与恢复 252
11.2.4 线程休眠 252
11.2.5 阻塞线程 253
11.2.6 终止线程 254
11.3 线程优先级 255
11.4 线程的同步 257
11.4.1 使用lock关键字 257
11.4.2 使用Monitor类 259
11.4.3 使用Mutex类 260
习题11 261
第12章 文件操作 263
12.1 文件和System.IO模型概述 263
12.1.1 文件类型 263
12.1.2 文件的属性 264
12.1.3 文件访问方式与文件流 264
12.1.4 System.IO模型 264
12.2 对文件进行操作 265
12.2.1 File类 265
12.2.2 FileInfo类 267
12.3 对文件夹进行操作 268
12.3.1 Directory类 268
12.3.2 DirectoryInfo类 270
12.4 使用流对文件进行读写 271
12.4.1 FileStream类 271
12.4.2 StreamWriter类和StreamReader类 274
12.4.3 BinaryWriter类和BinaryReader类 278
习题12 281
第13章 ADO.NET数据访问技术 283
13.1 ADO.NET概述 283
13.1.1 ADO.NET简介 283
13.1.2 ADO.NET数据提供程序 284
13.1.3 ADO.NET对象模型 285
13.2 Connection对象 287
13.2.1 Connection对象的连接字符串 287
13.2.2 Connection对象的创建 288
13.2.3 Connection对象的属性和方法 289
13.2.4 连接池 291
13.3 Command对象 292
13.3.1 创建Command对象 292
13.3.2 Command对象的属性 293
13.3.3 Command对象的方法 294
13.4 DataReader对象 299
13.4.1 DataReader对象的属性和方法 299
13.4.2 创建和使用DataReader对象 300
13.5 DataSet对象 301
13.5.1 DataSet对象概述 301
13.5.2 DataSet对象的属性和方法 302
13.5.3 DataTable对象 303
13.5.4 DataColumn对象 305
13.5.5 DataRow对象 306
13.5.6 DataView对象 308
13.6 DataAdapter对象 310
13.6.1 DataAdapter对象的属性和方法 310
13.6.2 创建DataAdapter对象 311
13.6.3 使用DataAdapter对象 312
13.7 数据绑定控件 314
13.7.1 BindingSource控件 314
13.7.2 BindingNavigator控件 317
13.7.3 DataGridView控件 318
习题13 321
参考文献 324