第1章 C#程序设计概述 1
1.1 .NET和C#简介 1
1.1.1 什么是.NET 1
1.1.2 .NET框架 2
1.1.3 C#语言简介 2
1.2 编写一个简单的C#程序 3
1.2.1 注释 4
1.2.2 命名空间 5
1.2.3 Main方法 5
1.2.4 输入/输出 5
1.3 编辑、编译和运行一个C#程序 6
1.3.1 编辑C#源代码 6
1.3.2 编译并运行程序 8
习题一 9
第2章 数据类型 10
2.1 值类型 10
2.1.1 简单类型 10
2.1.2 结构类型 12
2.1.3 枚举类型 13
2.2 引用类型 14
2.2.1 类 14
2.2.2 数组 15
2.2.3 代表 20
2.2.4 接口 21
2.3.1 装箱 22
2.3 装箱和拆箱 22
2.3.2 拆箱 24
2.4 类型转换 25
2.4.1 隐式类型转换 25
2.4.2 显式类型转换 28
习题二 32
第3章 常量与变量 33
3.1 词法说明 33
3.1.1 标识符 33
3.1.2 关键字 34
3.2.1 变量的命名 35
3.2.2 变量的使用 35
3.2 变量 35
3.2.3 变量的类型 37
3.3 常量 41
3.4 运算符和表达式 41
3.4.1 C#运算符 41
3.4.2 运算符的优先级和结合性 42
3.4.3 赋值运算符及其表达式 43
3.4.4 算术运算符及其表达式 46
3.4.5 关系运算符及其表达式 49
3.4.6 逻辑运算符及其表达式 50
3.4.7 位运算符及其表达式 52
3.4.8 条件运算符及其表达式 55
3.4.9 自增、自减运算符 56
3.4.10 其他运算符 57
习题三 61
第4章 控制台输入/输出 63
4.1 控制台I/O类 63
4.2 控制台输入 63
4.2.1 Console.Read()方法 63
4.2.2 Console.ReadLine()方法 65
4.3 控制台输出 67
4.3.1 基本的数据输出 67
4.3.2 格式化输出 68
4.3.3 字符串的处理方法 75
4.3.4 应用示例 81
4.4 文件操作 84
4.4.1 创建一个文本文件 84
4.4.2 读写文本文件 85
4.4.3 删除文件 86
习题四 88
第5章 程序流程控制 89
5.1 操作运算语句 89
5.1.1 终点与可达性 89
5.1.2 函数调用语句 90
5.1.3 语句块 90
5.1.4 空语句 90
5.1.6 声明语句 91
5.1.5 标号语句 91
5.1.7 表达式语句 92
5.2 选择语句 93
5.2.1 if语句 93
5.2.2 switch语句 97
5.3 循环语句 99
5.3.1 while语句 99
5.3.2 do...while语句 101
5.3.3 for语句 103
5.3.4 foreach语句 106
5.4.1 break语句 110
5.4.2 continue语句 110
5.4 转移语句 110
5.4.3 goto语句 111
5.4.4 return语句 112
5.5 预处理指令 112
5.5.1 条件编译 113
5.5.2 报告编译错误和警告 115
5.5.3 定义代码块指令 116
习题五 117
第6章 类 119
6.1 面向对象程序设计 119
6.1.1 面向对象程序设计的基本概念 119
6.1.2 类与对象 120
6.2 类声明 120
6.2.1 类修饰符 120
6.3 类成员 123
6.2.2 类的基本规范 123
6.3.1 类继承 124
6.3.2 new修饰符 126
6.3.3 静态成员和实例成员 126
6.3.4 嵌套类 127
6.4 类与结构 129
6.4.1 结构的定义和使用 129
6.4.2 结构的嵌套 130
6.4.3 结构和类的区别 131
6.5 构造函数和析构函数 132
6.5.1 实例构造函数 132
6.5.2 静态构造函数 136
6.5.3 析构函数 138
6.6 常量 139
6.7 字段 140
6.7.1 字段类别 140
6.7.2 只读字段 142
6.7.3 字段初始化 145
6.8 运算符重载 146
6.8.1 一元运算符重载 147
6.8.2 二元运算符重载 148
6.8.3 转换运算符 151
习题六 152
7.1.1 定义方法 153
7.1 定义与调用方法 153
第7章 方法 153
7.1.2 调用方法 155
7.2 方法参数 157
7.2.1 值参数 157
7.2.2 引用参数 159
7.2.3 输出参数 160
7.2.4 数组参数 161
7.3 静态方法 163
7.3.1 静态方法的定义与调用 163
7.3.2 访问类成员 164
7.4 方法重载 165
7.5.1 多态性 166
7.5 虚方法 166
7.5.2 虚方法 167
7.6 抽象方法和外部方法 169
7.6.1 抽象方法 169
7.6.2 外部方法 171
习题七 171
第8章 属性和索引器 172
8.1 属性 172
8.1.1 属性的定义 172
8.1.2 属性访问器 173
8.1.3 静态属性 176
8.1.4 虚拟、重载和抽象 178
8.2 索引器 182
8.2.2 索引器的使用 183
8.2.1 索引器的定义 183
习题八 190
第9章 代表和事件 191
9.1 代表 191
9.1.1 代表的声明与使用 191
9.1.2 多重代表 199
9.1.3 静态代表 200
9.1.4 代表构成 202
9.1.5 代表的异常处理 204
9.2 事件 206
9.2.1 事件的创建和使用 206
9.2.2 事件访问器 209
9.2.3 多重事件 211
习题九 214
第10章 接口 215
10.1 类与接口 215
10.1.1 类与接口的比较 215
10.1.2 使用接口的优势 215
10.2 接口的定义 216
10.2.1 定义接口 216
10.2.2 接口成员 217
10.3 接口的实现 219
10.3.1 接口的实现 219
10.3.2 显式接口成员实现 225
10.3.3 接口的重实现 229
10.3.4 接口实现的继承 230
10.4 接口的组合 231
10.5 接口的查询 232
10.5.1 通过使用is实现查询 233
10.5.2 通过使用as实现查询 234
习题十 235
第11章 特征与命名空间 236
11.1 特征 236
11.1.1 特征的定义 236
11.1.2 特征的使用 238
11.1.3 特征的查询 241
11.2 命名空间 248
11.2.1 定义命名空间 248
11.2.2 完全限定名 250
11.2.3 using语句 251
习题十一 254
第12章 异常处理 255
12.1 异常处理概述 255
12.2 常见的异常 256
12.3 异常处理的基本方法 257
12.3.1 try-catch语句 257
12.3.2 try-finally语句 260
12.3.3 try-catch-finally语句 262
12.3.4 throw语句 262
12.4 用户自定义的异常 265
习题十二 268
参考文献 269