第1章 开启C#之旅
1.1 软件开发概述
1.1.1 开发应用软件
1.1.2 软件开发的一般步骤
1.2 代码构建的重要性
1.3 认识C#编程语言
1.3.1 C#简史
1.3.2 C#关键字及相关标识符
1.3.3 C#中的语句和表达式
1.4 构建C#开发环境
1.4.1 安装开发环境
1.4.2 C#程序的基本结构
1.4.3 如何创建窗体程序
1.5 高质量代码准则:可阅读
1.5.1 养成好的代码编写习惯
1.5.2 代码不是私人财产,而是艺术品
1.5.3 代码应该具有可维护性
1.5.4 注释你的代码
1.6 高质量代码准则:用实践证明一切
1.7 高质量代码准则:好心情带来高质量
1.8 准备你的开发工具箱
第2章 处理数据
2.1 C#数据处理基础
2.1.1 C#数据类型
2.1.2 变量与常量
2.1.3 高质量代码准则:给变量起个好名字
2.1.4 值类型与引用类型
2.1.5 字面值
2.2 整数
2.2.1 整数的一般运算
2.2.2 溢出检查
2.2.3 ++与——运算
2.2.4 移位运算
2.2.5 高质量代码准则:准确使用整数
2.3 浮点数与decimal类型
2.3.1 浮点数与decimal数据的运算
2.3.2 高质量代码准则:合理使用浮点数和decimal类型
2.4 布尔类型
2.4.1 布尔运算
2.4.2 布尔类型数据的用途
2.5 字符
2.5.1 char类型
2.5.2 ASCII码表(0~127)
2.6 字符串
2.6.1 转义字符
2.6.2 逐字字符串
2.6.3 字符串的常用操作
2.6.4 单个字符时使用char类型
2.6.5 使用StringBuilder类型
2.7 日期与时间的处理
2.7.1 使用DateTime结构类型
2.7.2 获取中国农历信息
2.8 数据类型的转换
2.8.1 显式转换
2.8.2 隐式转换
2.8.3 TryParse方法转换
2.8.4 使用Convert类
2.8.5 转换是有代价的
2.9 object类型
2.9.1 一切皆对象
2.9.2 装箱和拆箱
2.9.3 高质量代码准则:object不应作为万能类型
2.10 C#运算符
第3章 控制程序流程
3.1 if语句
3.1.1 使用if语句
3.1.2 注意事项
3.2 switch语句
3.2.1 使用switch语句
3.2.2 注意事项
3.3 for语句
3.3.1 使用for语句
3.3.2 注意事项
3.4 while语句
3.4.1 使用while语句
3.4.2 注意事项
3.5 do语句
3.5.1 使用do语句
3.5.2 注意事项
3.6 foreach语句
3.6.1 使用foreach语句
3.6.2 注意事项
3.7 break语句
3.8 continue语句
3.9 goto语句与标签
第4章 处理异常
4.1 C#中的异常处理
4.1.1 Exception类型
4.1.2 try-catch语句结构
4.1.3 处理具体的异常类
4.1.4 使用finally语句块
4.1.5 throw语句
4.2 高质量代码准则:处理异常智能化、模式化
4.3 在Visual C#中调试代码
第5章 数组
5.1 C#中的数组
5.1.1 简单数组
5.1.2 洗牌——随机排序算法
5.1.3 多维数组
5.2 使用Array类
5.2.1 排序
5.2.2 反序排列
5.2.3 修改成员数量
5.3 使用ArrayList类
5.4 使用Hashtable类
5.5 表驱动法——完善中国农历信息的处理
第6章 结构
6.1 创建结构类型
6.2 结构成员
6.2.1 结构中的方法
6.2.2 结构中的属性
6.2.3 其他成员
6.3 结构的应用
第7章 枚举
7.1 C#中的枚举
7.2 枚举的应用
第8章 类
8.1 创建类的作用与目的
8.2 C#中的类
8.2.1 创建类
8.2.2 创建类的实例
8.2.3 构造函数与析构函数
8.2.4 构造函数的重载
8.2.5 构造函数链
8.3 类成员的可访问性
8.4 变量
8.5 属性
8.6 方法
8.6.1 创建方法
8.6.2 方法的参数
8.6.3 方法的返回值
8.6.4 方法的重载
8.6.5 高质量代码准则:创建高质量的方法
8.7 索引器
8.8 静态类与静态成员
8.8.1 静态成员
8.8.2 静态类
8.9 关于类的更多内容
8.10 高质量代码准则:创建高质量的类
8.11 封装中国农历信息类
8.11.1 第一个版本
8.11.2 重构版本
第9章 类的继承
9.1 继承概述
9.1.1 现实世界中的继承
9.1.2 C#中的继承
9.1.3 能否继承
9.2 子类
9.2.1 扩展功能
9.2.2 隐藏基类成员
9.2.3 区分子类与基类成员
9.2.4 重写虚成员
9.3 抽象类与抽象成员
9.4 继承的局限性
第10章 接口
10.1 接口的特点
10.2 创建接口
10.3 实现接口
10.4 接口的继承
10.5 实现多个接口
第11章 委托与事件
11.1 访问者模式
11.2 委托
11.3 事件
11.4 多路广播委托
第12章 命名空间
12.1 命名空间的成员
12.2 命名空间的组织
12.3 引用与别名
12.3.1 引用命名空间
12.3.2 命名空间别名
12.4 使用Microsoft.VisualBasic命名空间
12.4.1 获取操作系统与内存信息
12.4.2 播放波形文件
12.4.3 网络基本应用
第13章 泛型
13.1 泛型方法
13.2 泛型类
13.3 约束
第14章 运算符重载
14.1 在结构中重载运算符
14.2 在类中重载运算符
第15章 资源同步与自动清理
15.1 多线程
15.2 易失域(volatile field)
15.3 lock语句
15.4 using语句
第16章 关于C#的其他主题
16.1 预处理
16.1.1 根据条件编译代码
16.1.2 发布警告或错误
16.1.3 定义代码区域
16.2 特性
16.2.1 使用DllImportAttribute特性
16.2.2 自定义特性
16.3 不安全代码
16.3.1 指针与寻址运算
16.3.2 sizeof运算
16.4 分部类型(partial type)
16.5 可空类型(nullable type)
第17章 代码的进化
17.1 从代码到架构
17.1.1 基础代码
17.1.2 代码集成
17.2 重构
17.3 设计模式
17.4 关注代码改进的过程
17.5 找寻.NET Framework中的设计模式
17.5.1 迭代器模式
17.5.2 适配器模式
17.5.3 模板方法模式
第18章 策略模式
18.1 虚拟战争游戏示例:使用策略模式组合作战单位
18.1.1 第一设计方案
18.1.2 陆、海、空
18.1.3 真正的设计方案
18.1.4 组合第一个作战单位
18.1.5 这一切是怎样发生的
18.2 应用分析
18.2.1 问题
18.2.2 解决方案
18.2.3 应用特点
第19章 工厂方法模式
19.1 虚拟战争游戏示例:控制作战单位的创建
19.1.1 收起自由创建单位的权力
19.1.2 控制作战单位类型
19.1.3 统一作战单位的创建方法
19.2 应用分析
19.2.1 问题
19.2.2 解决方案
19.2.3 使用空对象
19.2.4 应用特点
19.3 工厂方法的应用
19.3.1 代替构造函数
19.3.2 隐藏特殊对象的创建
第20章 抽象工厂模式
20.1 示例:模拟组装电脑
……