内容简介
第一部分 .NET体系结构
第1章 .NET体系结构
1.1 .NET框架概述
1.2 .NET的平台无关性
1.3 公共语言运行时
1.4 通用类型系统
1.4.1 值类型和引用类型
1.4.2 装箱和拆箱
1.5 公共语言规范
1.6 语言的互操作性
1.7 即时编译
1.8 中间语言
1.9 基类库
第2章 从“Hello World!”开始
2.1 一个简单的C#程序
2.2 编译和运行程序
2.2.1 在Visual Studio 2010中编译和运行
2.2.2 通过命令行编译和运行
2.3 详细介绍
2.4 小结
第二部分 语法篇
第3章 标识符和关键字
3.1 标识符
3.2 关键字
3.3 标识符的命名约定
3.4 小结
第4章 变量、常量和类型
4.1 变量
4.1.1 给变量命名
4.1.2 声明变量
4.1.3 变量的初始化
4.1.4 类型推断
4.1.5 变量的作用域
4.2 常量
4.3 数据类型
4.3.1 内置的值类型
4.3.2 内置的引用类型
4.3.3 指针类型
4.3.4 Nullable类型
4.3.5 dynamic类型
4.4 进阶阅读:关于动态语言运行时
第5章 类型转换
5.1 隐式类型转换
5.1.1 数值类型
5.1.2 引用类型
5.1.3 装箱
5.2 显式类型转换
5.2.1 数值类型
5.2.2 溢出检查
5.2.3 引用类型
5.2.4 拆箱
5.3 as和is运算符
第6章 表达式和运算符
6.1 表达式
6.2 运算符的类型
6.3 运算符的优先级
6.4 算术运算符
6.5 求余运算符
6.6 递增运算符和递减运算符
6.7 关系和类型检测运算符
6.8 相等性判断运算符
6.9 条件运算符
6.10 逻辑运算符
6.11 位运算符
6.12 赋值运算符
6.13 typeof运算符
6.14 运算符重载
6.14.1 运算符的重载
6.14.2 可重载的运算符
第7章 语句
7.1 什么是语句
7.2 程序的三种结构
7.2.1 顺序结构
7.2.2 分支结构
7.2.3 循环结构
7.3 条件语句
7.3.1 if语句
7.3.2 switch语句
7.4 跳转语句
7.4.1 break语句
7.4.2 continue语句
7.4.3 return语句
7.4.4 throw语句
7.4.5 goto语句
7.4.6 default语句
7.5 标签语句
7.5.1 标签
7.5.2 标签语句的有效范围
7.6 循环语句
7.6.1 while循环
7.6.2 do…while循环
7.6.3 for循环
7.6.4 foreach…in循环
7.7 using语句
第8章 方法
8.1 方法的构成
8.2 局部变量和常量
8.3 方法的调用
8.4 返回值
8.5 参数
8.5.1 形参
8.5.2 实参
8.5.3 新特性:命名和可选参数
8.6 四种类型的参数
8.6.1 按值传递参数
8.6.2 按引用传递参数——关键字:ref
8.6.3 输出参数——关键字:out
8.6.4 参数数组——关键字:params
8.7 栈帧
8.8 递归
8.9 方法的重载
8.10 静态方法
第9章 类
9.1 类是什么
9.2 “Hello World!”程序回顾
9.3 类的声明
9.4 类的成员
9.4.1 字段
9.4.2 静态字段
9.4.3 方法
9.4.4 字段的初始化
9.4.5 属性
9.5 类的实例:对象
9.6 实例化中的内存分配
9.7 实例的成员
9.8 this关键字
9.9 访问修饰符
9.10 访问类的成员
9.10.1 从类内部访问成员
9.10.2 从类外部访问成员
9.10.3 从类外部访问静态成员
9.11 构造函数
9.12 对象初始化列表
9.13 析构函数
9.14 只读字段和常数
9.15 索引器
9.16 分部类型和分部方法——修饰符:partial
9.16.1 分部类
9.16.2 分部方法
9.17 注释
9.17.1 行注释
9.17.2 块注释
9.17.3 XML文档注释
第10章 继承
10.1 类的继承
10.2 访问继承的成员
10.3 使用new修饰符隐藏基类的成员
10.4 访问基类的成员
10.5 类的初始化顺序
10.6 在派生类中指定基类构造函数
10.7 类的访问修饰符
10.8 跨程序集的继承
10.9 密封类
10.10 静态类
10.11 扩展方法
10.12 派生类型的向上转型
第11章 多态
11.1 重载方法
11.2 虚方法
11.3 覆写方法
11.4 覆写标记为override的方法
11.5 抽象类及抽象方法
第12章 接口
12.1 定义接口
12.2 声明和实现接口
12.3 基类中的实现作为接口实现
12.4 实现多个接口
12.5 实现具有相同成员的接口
12.6 显式接口成员实现
12.7 调用显式接口成员实现
12.8 接口的派生
第13章 结构
13.1 什么是结构
13.2 结构是值类型
13.3 给结构赋值
13.4 构造函数
13.4.1 实例构造函数
13.4.2 静态构造函数
13.5 多态和可继承性
13.6 装箱和拆箱
13.7 结构和类的对比
13.7.1 字段初始化
13.7.2 性能
13.7.3 结构和类的适用场合分析
第14章 枚举
14.1 什么是枚举
14.2 设置枚举的底层数据类型
14.3 显式设置枚举的成员常量值
14.4 使用标志枚举
14.5 一些使用建议
第15章 委托
15.1 什么是委托
15.2 委托是引用类型
15.3 委托的声明和实例化
15.4 委托的组合
15.5 为委托添加一个方法
15.6 从委托中删除一个方法
15.7 委托在回调中的应用
15.8 委托中的协变和逆变
15.9 匿名方法
15.10 λ表达式
第16章 事件
16.1 什么是事件
16.2 事件和委托的关系
16.3 如何声明事件
16.4 订阅事件
16.5 触发事件
16.6 使用和扩展EventArgs类
16.7 使用自定义委托
16.8 事件访问器
第17章 泛型
17.1 什么是泛型
17.2 泛型类型
17.3 泛型类型的声明和实例化
17.4 类型参数
17.5 类型参数的约束
17.5.1 where子句
17.5.2 约束类型和顺序
17.6 泛型类
17.7 泛型结构
17.8 泛型接口
17.9 泛型委托
17.10 泛型方法
17.11 扩展方法和泛型类
17.12 协变和逆变
第18章 数组
18.1 数组的声明
18.2 数组的类型
18.3 数组派生自Array对象
18.4 实例化数组
18.5 初始化数组
18.5.1 显式初始化一维数组
18.5.2 显式初始化矩形数组及要点
18.5.3 隐式类型数组
18.6 访问数组元素
18.7 交错数组
18.7.1 交错数组的声明
18.7.2 交错数组的实例化
18.7.3 交错数组的初始化
18.8 矩形数组和交错数组的对比
18.9 使用foreach和for语句访问数组
18.9.1 foreach语句
18.9.2 for语句
18.9.3 迭代变量
18.10 数组协变
18.11 从Array对象继承的成员
18.12 数组的浅复制和深复制
第19章 集合
19.1 集合接口
19.2 常用的几种集合类型
19.2.1 ArrayList
19.2.2 Hashtable
19.2.3 Queue和Queue〈T〉
19.2.4 SortedList
19.2.5 Stack和Stack〈T〉
19.2.6 BitArray
19.2.7 List〈T〉
19.2.8 HashSet〈T〉
19.3 自定义集合
19.3.1 CollectionBase
19.3.2 ReadOnlyCollectionBase
19.4 迭代器
19.5 泛型集合接口支持协变和逆变
19.6 LINQ to Objects
19.6.1 LINQ简介
19.6.2 查询语法
19.6.3 方法语法
19.6.4 查询操作的组成
19.6.5 关于查询变量
19.6.6 查询语法和方法语法的统一
第20章 字符串与正则表达式
20.1 理解字符串
20.2 字符串的常用成员
20.3 字符串格式化
20.4 使用StringBuilder类
20.5 正则表达式
20.5.1 正则表达式基本语法
20.5.2 .NET对于正则表达式的支持
20.5.3 开始使用正则表达式
第21章 异常处理
21.1 异常类
21.2 抛出异常
21.3 捕获异常
21.4 自定义的异常类
21.5 异常处理的原则
第22章 命名空间和程序集
22.1 命名空间
22.1.1 使用命名空间
22.1.2 使用别名
22.2 程序集
22.2.1 程序集的结构
22.2.2 程序集清单
22.2.3 私有程序集和共享程序集
22.2.4 应用程序域
22.2.5 创建动态程序集并动态加载执行
22.2.6 全局程序集缓存
第23章 预处理指令
23.1 什么是预处理指令
23.2 观察一段示例
23.3 预处理指令集
23.4 #define和#undef指令
23.5 条件编译指令
23.6 #warning和#error指令
23.7 #line指令
23.8 #region和#endregion指令
23.9 #pragma warning指令
第24章 元数据和特性
24.1 元数据
24.1.1 从IntelliSense谈起
24.1.2 访问元数据
24.2 特性(Attribute)
24.2.1 什么是特性
24.2.2 创建自定义特性
24.2.3 访问特性
24.2.4 常用特性
24.2.5 特性应用完整示例
第25章 异步编程和多线程编程
25.1 进程和线程
25.2 BeginInvoke和EndInvoke
25.3 IAsyncResult接口和AsyncResult类
25.4 异步编程的4种方法
25.4.1 使用EndInvoke
25.4.2 使用WaitHandle
25.4.3 轮询
25.4.4 回调
25.5 多线程编程
25.5.1 Thread类
25.5.2 使用线程池
25.5.3 线程同步
25.5.4 死锁
第26章 I/O操作
26.1 文件和目录
26.1.1 File和Directory
26.1.2 FileInfo和DirectoryInfo
26.1.3 文件I/O的改进
26.2 流
26.3 异步操作
26.4 网络流的使用
26.5 序列化
26.5.1 BinaryFormatter
26.5.2 SoapFormatter
26.5.3 XML序列化
26.6 独立存储机制
第27章 XML处理
27.1 System.Xml命名空间
27.2 使用DOM
27.3 XPath和XSLT
27.4 LINQ to XML
27.4.1 LINQ to XML类库介绍
27.4.2 创建XML文档
27.4.3 使用LINQ进行遍历和查询
27.4.4 修改XML文档
第28章 增强的COM Interop
28.1 Dynamic lookup
28.1.1 dynamic关键字
28.1.2 访问Python代码
28.1.3 访问COM对象
28.2 改进的参数传递
28.3 完整示例
第29章 并行编程
29.1 任务并行库
29.1.1 并发和并行
29.1.2 并行编程架构
29.2 Parallel类
29.2.1 For方法重载一
29.2.2 For方法重载二
29.2.3 For方法重载三
29.3 Task类和Task〈TResult〉类
29.4 数据并行
29.5 任务并行
29.6 TaskFactory类和TaskFactory〈TResult〉类
29.6.1 任务创建选项
29.6.2 并发选项
29.6.3 后续任务选项
29.7 PLINQ
第三部分 附录
附录A Visual Studio 2010快速入门
附录B C#编码规范