第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〈TKeyTValue〉类 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扩展方法一:FirsOrDefault() 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.2IComparer〈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