第1章 深入了解.NET Framework 1
1.1 .NET Framework回顾 2
1.2 .NET Framework的体系结构 2
1.3 .NET Framework的组件 3
1.3.1 公共语言运行时 3
1.3.2 通用类型系统 4
1.3.3 公共语言规范 5
1.4 .NET程序编译原理 5
1.5 .NET框架类库 6
1.5.1 框架类库 6
1.5.2 框架类库中的命名空间 6
1.6 示例 7
【小结】 8
【自测题】 8
第2章 C#语法基础 9
2.1 预定义数据类型 10
2.1.1 为什么需要区分数据类型 10
2.1.2 主要预定义数据类型 10
2.2 程序中的变量和常量 11
2.2.1 变量的概念和作用 11
2.2.2 变量的定义 12
2.2.3 变量的赋值 13
2.2.4 常量 13
2.2.5 使用var创建隐型局部变量 13
2.3 表达式和常用运算符 16
2.3.1 表达式以及运算符的分类的
定义 16
2.3.2 算术运算符 16
2.3.3 比较运算符 16
2.3.4 逻辑运算符 17
2.3.5 快捷运算符 17
2.3.6 三元运算符 18
2.3.7 运算符优先级 18
2.4 C#中的程序控制结构 19
2.4.1 条件判断结构 19
2.4.2 循环结构 23
2.5 数组 26
2.5.1 数组的定义 26
2.5.2 数组的赋值和取值 27
2.5.3 使用var和数组初始化器
创建隐型数组 28
2.5.4 数组结合循环 29
2.6 枚举 31
2.7 简单类型转换 35
2.7.1 数值类型转换成字符串 35
2.7.2 字符串转换成数值类型 36
【小结】 36
【自测题】 37
【上机部分】 38
【课后作业】 46
第3章 类和对象(一) 47
3.1 C#——面向对象语言 48
3.1.1 面向对象语言的诞生和特点 48
3.1.2 面向对象语言基础——
类的概念和定义 49
3.1.3 对象 50
3.1.4 创建匿名类的对象 53
3.2 成员方法 54
3.2.1 成员方法的定义 54
3.2.2 方法调用 55
3.3 构造方法 56
3.3.1 为什么需要构造方法 56
3.3.2 this关键字 62
3.4 命名空间 64
3.5 面向对象语言特点和访问
修饰符 67
3.5.1 面向对象语言的特点 67
3.5.2 访问修饰符 68
3.6 值类型和引用类型 74
3.6.1 数据类型的分类:值类型和
引用类型 74
3.6.2 值类型和引用类型的转换:
装箱和拆箱 78
【小结】 79
【自测题】 80
【上机部分】 80
【课后作业】 88
第4章 类和对象(二) 89
4.1 类的静态成员 90
4.1.1 静态方法和static关键字 90
4.1.2 静态成员变量 93
4.2 ref关键字和out关键字 94
4.2.1 ref关键字 94
4.2.2 out关键字 96
4.3 成员方法的重载 97
【小结】 101
【自测题】 101
【上机部分】 102
【课后作业】 106
第5章 C# OOP深入 107
5.1 类似于类的数据类型——
结构体 108
5.2 访问私有成员的利器——
属性 110
5.2.1 如何定义和使用属性 111
5.2.2 自动属性 114
5.3 索引器 114
5.4 静态类 118
5.5 使用类图查看类的构造 119
【小结】 120
【自测题】 121
【上机部分】 121
【课后作业】 128
第6章 C#事件处理 129
6.1 委托 130
6.1.1 定义委托 131
6.1.2 实例化委托 131
6.1.3 调用委托 133
6.1.4 匿名方法 133
6.2 事件 135
6.2.1 定义事件 136
6.2.2 订阅事件 136
6.2.3 引发事件 137
6.3 自定义事件完整实例 137
6.4 含参数事件完整实例 139
【小结】 143
【自测题】 143
【上机部分】 144
【课后作业】 150
第7章 继承和多态 151
7.1 继承 152
7.1.1 继承C#中的类 152
7.1.2 继承中的构造方法 156
7.1.3 base关键字和protected
访问修饰符 159
7.2 密封类 163
7.3 多态 164
【小结】 168
【自测题】 168
【上机部分】 170
【课后作业】 176
第8章 抽象类和接口 177
8.1 抽象类 178
8.2 接口 182
8.2.1 使用接口 183
8.2.2 继承基类并实现接口 184
8.2.3 多重接口实现 186
8.2.4 is和as关键字 187
8.2.5 接口绑定 188
8.2.6 接口作为参数的意义 189
8.2.7 接口小结 189
8.3 接口和抽象类的区别 189
【小结】 190
【自测题】 190
【上机部分】 191
【课后作业】 193
第9章 常用类 195
9.1 Math类 196
9.2 Random类 197
9.3 DateTime结构 200
9.4 System.String类 202
9.5 StringBuilder类 204
9.6 正则表达式 205
9.6.1 System.Text.RegularExpressions命名空间 206
9.6.2 Regex类 206
9.6.3 Match类和
MatchCollection类 211
9.6.4 模糊匹配 212
【小结】 214
【自测题】 214
【上机部分】 215
【课后作业】 218
第10章 集合和泛型 219
10.1 System.Array概述 220
10.2 System.Array的属性和
方法 221
10.3 System.Collections命名
空间 223
10.3.1 ArrayList类 223
10.3.2 HashTable类 226
10.4 泛型集合 229
10.4.1 System.Collections.Generic
命名空间 231
10.4.2 List<T>类 231
10.4.3 Dictionary<TKey,TValue>类 234
10.4.4 对象与集合初始化器 237
10.5 Lambda表达式与语句 238
10.5.1 Lambda表达式 238
10.5.2 Lambda语句 239
10.5.3 带有标准查询运算符的
Lambda 239
10.6 扩展方法 240
10.6.1 扩展方法一:
FirstOrDefault() 241
10.6.2 扩展方法二:Max() 243
10.6.3 扩展方法三:
SingleOrDefault() 244
10.6.4 扩展方法四:Where() 245
10.6.5 扩展方法五:Select() 246
10.7 IComparable接口实现排序 247
10.8 泛型接口 252
10.8.1 IComparable<T>接口 252
10.8.2 IComparer<T>接口 253
【小结】 256
【自测题】 257
【上机部分】 257
【课后作业】 264
第11章 调试和异常处理 265
11.1 调试 266
11.1.1 调试的必要性 266
11.1.2 调试过程 267
11.1.3 Visual Studio 2008中的
调试工具 270
11.2 异常 272
11.2.1 System.Exception 273
11.2.2 try和catch块 275
11.2.3 使用throw引发异常 276
11.2.4 使用finally 276
11.2.5 多重catch块 277
11.2.6 自定义异常类 277
11.3 应用程序示例 278
【小结】 280
【自测题】 281
【上机部分】 281
【课后作业】 288
第12章 C#中的文件处理 289
12.1 System.IO命名空间 290
12.2 File类 290
12.3 Directory类 291
12.4 对文本文件的读写操作 292
12.4.1 文件流 293
12.4.2 流读写对象 294
12.5 二进制文件的读写 297
12.6 序列化和反序列化 301
【小结】 304
【自测题】 304
【上机部分】 305
【课后作业】 309
参考文献 311
