第1章 初识C# 1
1.1 第一个C#程序 1
1.1.1 启动IDE 1
1.1.2 编写C#程序 4
1.1.3 编译和运行C#程序 4
1.2 C#编码惯例 5
1.3 小结 5
第2章 语言基础 6
2.1 ASCII和Unicode 6
2.2 内建类型和通用类型系统 8
2.3 变量 10
2.4 常量 12
2.5 直接量 13
2.5.1 整型直接量 13
2.5.2 浮点型直接量 14
2.5.3 布尔型直接量 15
2.5.4 字符型直接量 15
2.6 基本类型转换 16
2.6.1 宽化转换 16
2.6.2 窄化转换 17
2.7 运算符 18
2.7.1 一元运算符 19
2.7.2 算术运算符 21
2.7.3 关系运算符 23
2.7.4 条件运算符 23
2.7.5 位移运算符 24
2.7.6 赋值运算符 25
2.7.7 整型位运算符 &|^ 26
2.7.8 逻辑运算符&|^ 26
2.7.9 运算符优先级 26
2.7.10 提升 28
2.8 注释 29
2.9 小结 29
第3章 语句 30
3.1 C#语句概览 30
3.2 if语句 31
3.3 while语句 34
3.4 do-while语句 36
3.5 for语句 37
3.6 beak语句 40
3.7 continue语句 41
3.8 switch语句 41
3.9 小结 43
第4章 对象与类 44
4.1 C#对象是什么 44
4.2 C#类 45
4.2.1 字段 47
4.2.2 方法 47
4.2.3 main方法 48
4.2.4 构造函数 49
4.2.5 UML类图中的类成员 50
4.3 创建对象 50
4.4 null关键字 51
4.5 内存中的对象 52
4.6 C#命名空间 54
4.7 封装和类的访问控制 55
4.8 关键字this 59
4.9 使用其他类 60
4.10 静态成员 62
4.11 变量作用字段 64
4.12 方法重载 65
4.13 小结 66
第5章 核心类 67
5.1 System.Object 67
5.2 System.String 68
5.2.1 字符串连接 69
5.2.2 比较两个字符串 69
5.2.3 字符串直接量 69
5.2.4 转义特定字符 70
5.2.5 String类的属性 70
5.2.6 String类的方法 71
5.3 System.Text.StringBuilder 73
5.3.1 StringBuilder类的构造函数 73
5.3.2 StringBuilder类的属性 74
5.3.3 StringBuilder类的方法 75
5.4 数组 76
5.4.1 遍历数组 77
5.4.2 改变数组的大小 78
5.4.3 为Main传递一个字符串数组 79
5.5 System.Console 79
5.6 小结 80
第6章 继承 81
6.1 继承概述 81
6.1.1 扩展一个类 82
6.1.2 is-a关系 82
6.2 可访问性 84
6.3 方法覆盖 85
6.4 调用基类的构造函数 87
6.5 调用基类的隐藏成员 88
6.6 类型转换 89
6.7 密封类 90
6.8 关键字is 90
6.9 小结 91
第7章 结构 92
7.1 结构概述 92
7.2 .NET结构 92
7.3 编写一个结构 94
7.4 可为空的类型 95
7.5 小结 95
第8章 错误处理 96
8.1 捕获异常 96
8.2 没有catch的try语句和using语句 99
8.3 System.Exception类 100
8.4 .从方法中抛出异常 101
8.5 异常处理中的最后注意事项 102
8.6 小结 103
第9章 数字和日期 104
9.1 数字解析 104
9.2 数字格式化 106
9.3 System.Math类 109
9.4 使用Date和Time 110
9.4.1 System.DateTime 111
9.4.2 System.TimeSpan 112
9.5 小结 116
第10章 接口和抽象类 117
10.1 接口的概念 117
10.2 从技术角度看接口 119
10.3 实现System.IComparable 121
10.4 抽象类 124
10.5 小结 126
第11章 枚举 127
11.1 枚举概览 127
11.2 类中的枚举 130
11.3 switch语句中的枚举 131
11.4 小结 132
第12章 泛型 133
12.1 为什么要使用泛型 133
12.2 泛型介绍 135
12.3 应用限制 139
12.4 编写泛型类型 140
12.5 小结 141
第13章 集合 143
13.1 概述 143
13.2 List类 143
13.2.1 重要的方法 144
13.2.2 List示例 145
13.3 HashSet类 146
13.3.1 有用的方法 146
13.3.2 HashSet示例 147
13.4 Queue类 148
13.4.1 有用的方法 148
13.4.2 Queue示例 149
13.5 Dictionary类 150
Dictionary示例 150
13.6 小结 151
第14章 输入输出 152
14.1 文件和目录的处理与操作 152
14.1.1 创建和删除文件 153
14.1.2 创建和删除一个目录 154
14.1.3 操作File和Directory的属性 154
14.1.4 列出目录下的文件 155
14.1.5 复制和移动文件 156
14.2 输入/输出流 156
14.3 读取文本(字符) 157
14.4 写入文本(字符) 159
14.5 读取和写入二进制数据 160
14.6 小结 162
第15章 WPF 163
15.1 概述 163
15.2 应用程序和窗口 164
15.2.1 简单的WPF应用程序1 166
15.2.2 简单的WPF应用程序2 167
15.3 WPF控件 168
15.4 面板和布局 170
15.5 事件处理 172
15.6 XAML 175
15.7 小结 178
第16章 多态 179
16.1 定义多态 179
16.2 多态的应用 182
16.3 一个绘图程序中的多态 185
16.4 小结 194
第17章 ADO.NET 195
17.1 介绍ADO.NET 195
17.2 访问数据的5个步骤 197
17.2.1 安装数据提供者 197
17.2.2 获取一个数据库连接 199
17.2.3 创建一个DbCommand对象 202
17.2.4 创建一个DbDataReader 202
17.3 连接到SQLServer的示例 203
17.4 小结 205
附录A Visual Studio Express 2012 for WindowS Desktop 206
A.1 硬件和软件的要求 206
A.2 下载和安装 207
A.3 注册Visual Studio Express 2012 209
A.4 创建一个项目 210
A.5 创建一个类 211
A.6 运行一个项目 212
附录B Visual C# 2010 Express 213
B.1 硬件和软件的要求 213
B.2 下载和安装 214
B.3 注册Visual C# 2010 Express 216
B.4 创建一个项目 217
B.5 创建一个类 217
B.6 运行一个项目 218
附录C SQL Server 2012 Express 219
C.1 下载SQL Server 2012 Express 219
C.2 安装SQL Server 2012 Express 219
C.3 连接到SQL Server并创建一个数据库 224