第1章 C#概述 1
1.1 什么是C# 1
1.2 第一个C#应用程序——Hello,World! 2
1.3 C#程序结构分析 3
1.4 注释的使用 3
1.5 C#程序的编译 5
1.6 Visual Studio.Net的开发工具包 6
1.7 与C、C++以及其他程序的比较 12
1.8 小结 13
第2章 语法结构 14
2.1 编译过程 14
2.2 预处理 15
2.3 语法简介 16
2.4 词法分析 17
2.4.1 输入 18
2.4.2 注释 18
2.4.3 空白符 19
2.4.4 标记 20
2.4.5 输入字符 20
2.5 字符处理 21
2.5.1 标识符 21
2.5.2 关键字 23
2.5.3 保留字 23
2.6 小结 29
3.1 概述 30
第3章 C#的数据类型 30
3.2 值类型 31
3.2.1 整数类型 34
3.2.2 浮点类型 35
3.2.3 十进制类型 35
3.2.4 简单类型 36
3.2.5 结构类型 38
3.2.6 布尔类型 39
3.2.7 枚举类型 40
3.3 引用类型 42
3.3.2 数组类型 43
3.3.1 字符串类型 43
3.3.3 接口类型 47
3.3.4 类类型 47
3.3.5 对象类型 48
3.3.6 代理类型 48
3.4 类型的统一 48
3.5 小结 50
第4章 变量 51
4.1 变量简介 51
4.2 变量的分类 53
4.2.1 静态变量 55
4.2.2 实例变量 56
4.2.4 值参数 57
4.2.3 数组元素 57
4.2.5 形式参数 58
4.2.6 输出参数 60
4.2.7 局部变量 61
4.3 限定赋值 64
4.3.1 初始赋值变量 65
4.3.2 初始不赋值变量 66
4.4 小结 66
第5章 表达式与运算符 68
5.1 表达式 68
5.2.1 算术运算符 69
5.2 运算符 69
5.2.2 赋值运算符 72
5.2.3 关系运算符 73
5.2.4 逻辑运算符 74
5.2.5 位运算符 76
5.2.6 条件运算符 80
5.2.7 其他运算符 81
5.3 运算优先级 88
5.4 小结 89
第6章 转换 90
6.1 隐式转换 90
6.1.1 隐式的数值转换 91
6.1.2 隐式的引用转换 92
6.1.3 其他的隐式转换 94
6.2 显式转换 96
6.2.1 显式数值转换 97
6.2.2 显式引用转换 100
6.2.3 其他显式转换 102
6.3 用户自定义转换 103
6.3.1 允许的用户自定义转换 103
6.3.2 用户自定义隐式转换 103
6.3.3 用户自定义显式转换 105
6.4 小结 111
7.1 表达式语句 112
第7章 语句 112
7.2 块 113
7.3 选择语句 115
7.3.1 if语句 115
7.3.2 switch语句 117
7.4 循环语句 118
7.4.1 while语句 119
7.4.2 do-while语句 120
7.4.3 for语句 120
7.4.4 foreach语句 122
7.5 跳转语句 123
7.5.1 break语句和continue语句 124
7.5.2 labeled语句和goto语句 125
7.6 小结 126
第8章 对象与类 127
8.1 面向对象的程序设计方法 127
8.1.1 设计思想 127
8.1.2 基本概念 128
8.1.3 面向对象特性 130
8.1.4 面向对象的C#语言 132
8.2 类声明 133
8.2.1 修饰符 136
8.2.2 基类 138
8.3 小结 140
第9章 类成员的基本概念 141
9.1 类成员 141
9.1.1 继承 143
9.1.2 类成员的重载 145
9.1.3 静态成员和实例成员 148
9.2 成员访问 151
9.3 成员的作用范围 157
9.4 成员隐藏 159
9.4.1 嵌套隐藏 159
9.4.2 继承隐藏 160
9.5 小结 163
第10章 方法及其特性 164
10.1 方法参数 165
10.1.1 值参数 166
10.1.2 引用参数 166
10.1.3 输出参数 168
10.1.4 参量参数 169
10.2 虚函数 171
10.3 重载函数 177
10.4 抽象方法 179
10.5 外部方法 182
10.6 小结 183
11.1 域 185
第11章 类的数据成员 185
11.1.1 静态域和实例域 186
11.1.2 只读域 188
11.2 事件 190
11.3 索引 195
11.4 操作符重载 197
11.5 小结 200
第12章 构造器和析构器 201
12.1 构造器 201
12.2 构造器的分类 204
12.2.1 实例变量初始化 205
12.2.2 私有构造器 207
12.2.3 静态构造器 208
12.3 析构器 210
12.4 小结 212
第13章 属性成员和代码属性 213
13.1 属性成员 213
13.1.1 静态属性成员和实例属性成员 217
13.1.2 属性成员访问 219
13.1.3 属性成员中虚访问、抽象访问的重载 223
13.2 代码属性 225
13.2.1 代码属性的应用方式 225
13.2.2 声明代码属性 227
13.2.3 应用代码属性 228
13.3 小结 232
第14章 命名空间 233
14.1 命名空间的基本概念 233
14.2 命名空间声明 234
14.3 指示 239
14.3.1 别名指示 239
14.3.2 命名空间指示 242
14.4 小结 244
第15章 预处理 245
15.1 预处理标识符声明 245
15.2 条件预处理 248
15.3 预处理控制行 251
15.4 预处理表达式 252
15.5 小结 253
第16章 接口和代理 254
16.1 接口 254
16.1.1 访问接口成员 255
16.1.2 接口抽象读写访问 257
16.1.3 接口多重继承 259
16.2 代理 262
16.2.1 使用代理 263
16.2.2 多重代理 265
16.3 小结 267
17.1 简单性 269
第17章 新特性 269
17.2 现代性 270
17.3 面向对象 270
17.4 类型安全性 271
17.5 兼容性 273
17.6 版本处理技术 273
17.7 动态内存管理 275
17.8 和其他开发语言的比较 278
17.9 小结 279
附录1 C#中的关键字 280
附录2 运算符优先级别 281
附录3 系统命名空间成员及其层次关系 283
附录4 不同程序设计语言之间的比较 289