目录 1
第1章 .NET和C#概述 1
1.1 MicrosoftNET技术的由来 1
1.2 公共语言架构(CLI) 2
13 .NET Framework 2
1.3.1 公共语言运行时(CLR) 3
1.3.2 .NET类库 4
1.4 C#语言简介 5
1.5 C#2.0的新增特性 6
1.6 小结 7
第2章 C#应用程序初探 8
2.1 第一个C#应用程序 8
2.2 C#程序的基本结构 10
2.2.1 程序集 10
2.2.2 命名空间 11
2.2.3 类型、类和方法 12
2.3.1 Console类 14
2.2.4 注释 14
2.3 与用户进行交互 14
2.3.2 一个交互程序 15
2.4 编写Windows应用程序 17
2.5 小结 19
2.6 习题 19
第3章 数据类型 20
3.1 值类型 20
3.1.1 整数类型 20
3.1.2 字符类型 23
3.1.3 实数类型 24
3.1.4 布尔类型 26
3.1.5 结构类型 26
3.1.6 枚举类型 28
3.2 引用类型 29
3.2.1 类 29
3.2.2 接口 32
3.2.3 代表 35
3.2.4 数组 37
3.3 类型转换 41
3.3.1 数值转换 41
3.3.2 枚举转换 44
3.3.3 引用转换 45
3.3.4 装箱和拆箱转换 46
3.3.5 转换检查 49
3.4 小结 49
3.5 习题 49
第4章 成员、变量和常量 51
4.1 基本成员类型 51
4.1.1 字段 52
4.1.2 方法 53
4.1.3 嵌套成员 58
4.1.4 成员访问限制 58
4.1.5 静态成员和非静态成员 63
4.2 变量 65
4.3 常量 67
4.4 小结 70
4.5 习题 70
第5章 表达式 72
5.1 操作符 72
5.2 算术表达式 73
5.2.1 基本算术运算 73
5.2.2 枚举运算 76
5.2.3 模运算 76
5.2.4 其他 78
5.3 自增和自减表达式 80
5.4 位运算表达式 81
5.4.1 取补运算 81
5.4.2 与、或和异或运算 82
5.4.3 移位运算 83
5.5 赋值表达式 84
5.5.1 简单赋值 85
5.5.2 复合赋值 85
5.6 关系表达式 85
5.6.1 比较运算 85
5.6.2 类型判断 87
5.7 条件逻辑表达式 89
5.8 其他特殊表达式 90
5.8.1 一元加减表达式 90
5.8.2 条件表达式 91
5.8.3 类型表达式 92
5.8.4 创建表达式 96
5.8.5 溢出检查表达式 97
5.9 小结 99
5.10 习题 99
6.1.1 if句 101
6.1 选择语句 101
第6章 控制结构 101
6.1.2 switch语句 104
6.2 循环语句 106
6.2.1 while循环语句 106
6.2.2 do-while循环语句 108
6.2.3 for循环语句 109
6.2.4 foreach循环语句 111
6.3 跳转语句 113
6.3.1 break语句 113
6.3.2 continue语句 114
6.3.3 return语句 114
6.3.4 goto语句 115
6.4 小结 117
6.5 习题 117
第7章 类 118
7.1 面向对象的程序设计基础 118
7.2.1 构造函数 119
7.2 类的生命周期 119
7.2.2 析构函数 121
7.2.3 静态构造函数 122
7.3 属性 123
7.4 索引函数 126
7.5 事件 130
7.6 操作符重载 134
7.7 this关键字 138
7.8 小结 142
7.9 习题 142
第8章 字符串类型 144
8.1 构造String类型 144
8.2 String类的字段、属性和索引函数 144
8.3 字符操作和子串操作 145
8.3.1 字符操作 145
8.3.2 子串操作 146
8.4.1 比较字符串 148
8.4 字符串的比较和连接 148
8.4.2 连接字符串 149
8.5 字符串的格式化 150
8.5.1 字符替换 150
8.5.2 字符填充 151
8.5.3 字符修剪 152
8.5.4 参数格式化 153
8.5.5 解析字符串 154
8.6.1 引入StringBuilder类 156
8.6 StringBuildet类 156
8.6.2 构造StringBuilder对象 158
8.6.3 StringBuilder类的字段、属性和索引函数 158
8.6.4 StringBuilder类的方法 158
8.7 小结 160
8.8 习题 161
第9章 继承和多态 162
9.1 继承 162
9.1.1 基类和派生类 162
9.1.2 隐藏基类的成员 166
9.1.3 base关键字 168
9.1.4 继承中的构造函数和析构函数 169
9.2 多态性 173
9.2.1 虚拟方法和重载方法 173
9.2.2 抽象类和抽象方法 178
9.2.3 密封类和密封方法 180
9.3 再谈接口与继承 182
9.4 小结 191
9.5 习题 191
第10章 泛型类 194
10.1 概述 194
10.1.1 引入泛型的原因 194
10.1.2 泛型类的语法定义 196
10.2 泛型类的成员 198
10.2.1 在成员中使用类型参数 198
10.2.2 类型参数的成员和默认值 201
10.2.3 嵌套泛型类 202
10.2.4 静态成员 203
10.2.5 泛型类中的操作符重载 205
10.3 多参数泛型类 206
10.3.1 多个类型参数的定义和使用 206
10.3.2 泛型类中方法的标识 209
10.4 类型限制 210
10.5 泛型类之间的继承 212
10.5.1 开放类型与封闭类型 212
10.5.2 普通基类与派生泛型类 213
10.5.3 泛型基类与普通派生类 215
10.5.4 泛型基类与泛型派生类 216
10.6 小结 220
10.7 习题 220
第11章 泛型结构和接口 223
11.1 泛型结构 223
11.2.1 泛型接口的定义 226
11.2 泛型接口 226
11.2.2 惟一性规则 227
11.2.3 泛型接口与继承 231
11.2.4 集合中的泛型 234
11.3 小结 241
11.4 习题 242
第12章 可空类型 245
12.1 引入可空类型 245
12.2 泛型结构NullableType 248
12.2.1 概述 248
12.2.2 判断和取值 249
12.2.3 类型转换 252
12.3 操作符提升 254
12.4 可空布尔类型 258
12.5 空值结合操作符 260
12.7 习题 261
12.6 小结 261
第13章 泛型方法 264
13.1 概述 264
13.1.1 引入泛型方法 264
13.1.2 泛型方法的定义 265
13.1.3 调用泛型方法 267
13.1.4 惟一性规则 268
13.2.1 概述 270
13.2 泛型方法的重载 270
13.2.2 示例程序:读写器 271
13.3 泛型方法与代表 279
13.4 小结 281
13.5 习题 281
第14章 遍历器 284
14.1 概述 284
14.1.1 foreach语句与遍历 284
14.1.2 Iterator模式 284
14.2.1 IEnumerable和IEnumerable<T>接口 286
14.2 使用可枚举类型 286
14.2.2 实现多种遍历方式 287
14.2.3 带参遍历 292
14.3 使用枚举器 296
14.4 遍历器工作机制 298
14.4.1 遍历器代码 298
14.4.2 遍历流程 300
14.5 示例程序:联系人分类输出 302
14.6 小结 305
14.7 习题 305
第15章 匿名方法 306
15.1 方法的命名调用和匿名调用 306
15.2 深入了解Delegate类 308
15.2.1 创建代表对象 308
15.2.2 属性 308
15.2.3 方法调用 310
15.3 匿名方法的定义规则 312
15.4 外部变量 314
15.5 代表对象作为方法参数和返回值 316
15.6 在事件中使用匿名方法 321
15.7 小结 325
15.8 习题 326
第16章 异常处理 328
16.1 错误和异常 328
16.2.1 try-catch语句 331
16.2 C#中的异常处理结构 331
16.2.2 try-catch-finally语句 333
16.2.3 try-finally语句 336
16.2.4 throw语句 337
16.3 异常的层次结构 339
16.3.1 异常传播 339
16.3.2 Exception类 340
16.3.3 其他一些常见的异常类 342
16.4 使用异常的原则和技巧 344
16.5 小结 345
16.6 习题 346
第17章 文件和流 349
17.1 文件系统概述 349
17.2 驱动器、目录和文件 350
17.2.1 与IO操作相关的枚举 350
17.2.2 驱动器 352
17.2.3 目录 355
17.2.4 文件 358
17.3 文件流和数据流 361
17.3.1 抽象类Stream 362
17.3.2 文件流FileStream 363
17.3.3 流的文本读写器 365
1 7.3.4 流的二进制读写器 368
17.3.5 常用的其他流对象 369
17.4 程序示例 372
17.4.1 文件加密器 372
17.4.2 联系人数据的IO操作 375
17.5 小结 382
17.6 习题 382
第18章 代码组织与管理 384
18.1 分布类型(PartialType) 384
18.1.1 分布类型的定义 384
18.1.2 分布泛型 386
18.1.3 分布类型的应用 388
18.2.1 条件编译 395
18.2 代码中的预处理器指令 395
18.2.2 编译警告和错误 399
18.2.3 其他的一些预处理器指令 400
18.3 XML代码注释 400
18.3.1 XML简介 401
18.3.2 使用XML注释 401
18.3.3 XML注释标记 403
18.4 小结 407
18.5 习题 408