第1章 C#概述 1
1.1 .NET框架与C# 1
1.2 类库(Class Library) 2
1.3 Visual C#2005 Express 3
1.3.1 安装Express 3
1.3.2 Express的帮助文件 7
1.3.3 创建和执行项目 8
1.4 C#应用程序类型 12
1.5 本章习题 13
第2章 初探C# 14
2.1 第1个C#应用程序 14
2.1.1 创建执行文件 14
2.1.2 程序结构 15
2.1.3 注释 16
2.1.4 类声明 16
2.1.5 程序的入口点Main() 17
2.1.6 关键字 17
2.1.7 变量和数据类型 18
2.1.8 程序语句 18
2.2 类和命名空间 19
2.2.1 关于类 19
2.2.2 命名空间 20
2.3 基本输入/输出 21
2.4 本章习题 22
第3章 变量和数据类型 24
3.1 使用变量 24
3.1.1 变量声明 24
3.1.2 变量的命名 25
3.1.3 赋值和初始化 25
3.1.4 设置常量 27
3.2 数据类型 28
3.3 值类型 28
3.3.1 整数类型 29
3.3.2 浮点类型 30
3.3.3 decimal类型 32
3.3.4 char和转义字符 32
3.3.5 布尔类型 34
3.4 类型转换 34
3.5 枚举类型 36
3.6 引用类型 38
3.7 栈(Stack)和堆(Heap) 39
3.8 本章习题 40
第4章 运算符 42
4.1 表达式 42
4.1.1 操作数和运算符 42
4.1.2 运算符分类 43
4.2 赋值与算术运算 44
4.2.1 赋值运算符 44
4.2.2 算术运算符 45
4.2.3 复合运算符和自增自减运算符 46
4.2.4 类型转换错误 49
4.3 关系运算和逻辑运算 50
4.3.1 关系运算符 50
4.3.2 逻辑运算符与短路运算符 51
4.3.3 逻辑逐位运算符 53
4.3.4 移位运算符 55
4.4 三元运算符 57
4.5 运算符的优先级 58
4.6 本章习题 59
第5章 流程控制及循环 61
5.1 流程控制 61
5.1.1 if语句 61
5.1.2 if嵌套 65
5.1.3 if-else-if语句 66
5.1.4 switch语句 68
5.2 循环 74
5.2.1 for语句 74
5.2.2 while语句 76
5.2.3 do-while语句 78
5.2.4 跳转语句 80
5.3 变量的生存期 82
5.4 本章习题 83
第6章 数组 84
6.1 关于数组 84
6.1.1 数组的类型 84
6.1.2 定义数组 85
6.1.3 数组索引 86
6.1.4 访问数组元素 86
6.1.5 数组的特性 88
6.1.6 使用foreach 90
6.2 二维数组 91
6.2.1 矩形数组 91
6.2.2 锯齿形数组 94
6.3 矩阵相乘 96
6.4 魔术矩阵 99
6.5 本章习题 103
第7章 类和方法 105
7.1 类(Class) 105
7.1.1 关于类 105
7.1.2 定义类 106
7.1.3 类实例及成员引用 108
7.2 方法函数成员(Method) 110
7.2.1 方法 110
7.2.2 定义方法 112
7.2.3 方法的返回值 115
7.2.4 参数传递 118
7.2.5 传址参数与ref 121
7.2.6 返回值与out 122
7.3 使用this关键字 123
7.4 方法重载 125
7.5 递归(Recursion) 127
7.6 本章习题 130
第8章 扩展类 132
8.1 对象的创建和销毁 132
8.1.1 对象的创建和引用 132
8.1.2 构造方法 133
8.1.3 构造方法参数和多重构造方法 135
8.1.4 销毁方法 137
8.2 访问修饰符 137
8.2.1 关于修饰符 137
8.2.2 public与private 138
8.3 属性成员 141
8.3.1 设计属性成员 141
8.3.2 属性限制 144
8.4 索引器 146
8.4.1 使用索引器 146
8.4.2 多维索引器 149
8.5 静态成员 153
8.6 静态类 156
8.7 结构 157
8.8 嵌套类 159
8.9 本章习题 161
第9章 运算符重载 163
9.1 运算符重载的概念 163
9.2 实现运算符重载 164
9.3 二元运算符重载 166
9.4 处理不同类型之间的运算 169
9.5 逻辑运算符重载 172
9.6 重载关系运算符 177
9.7 转换运算符 184
9.8 本章习题 188
第10章 面向对象与继承 189
10.1 面向对象的概念 189
10.2 继承(Inheritance) 191
10.2.1 关于继承 191
10.2.2 实现继承 192
10.2.3 继承结构的访问限制 198
10.2.4 限制继承(Sealed Class) 199
10.3 覆写 200
10.3.1 覆写方法成员 200
10.3.2 使用base和new关键字 203
10.3.3 使用new创建新方法 206
10.4 构造方法的继承 208
10.5 Object类 214
10.5.1 Object类的成员 214
10.5.2 覆写Object的函数 216
10.5.3 Boxing与Unboxing 216
10.6 本章习题 217
第11章 抽象类和接口 219
11.1 抽象类(Abstract Class) 219
11.2 接口 225
11.2.1 定义与使用接口 225
11.2.2 将派生类实例对象转型为接口类型 227
11.2.3 定义接口属性 233
11.3 扩展接口 234
11.3.1 接口继承 235
11.3.2 实现多重接口 237
11.3.3 指定实现的接口 239
11.4 本章习题 241
第12章 异常处理 243
12.1 异常处理概述 243
12.1.1 程序异常 243
12.1.2 异常处理 243
12.2 异常处理机制 245
12.2.1 使用try-catch 245
12.2.2 异常类(Exception) 248
12.2.3 精确地捕捉异常 253
12.2.4 使用finally 257
12.2.5 嵌套try-catch区块 258
12.3 throw语句 261
12.4 自定义异常类 265
12.5 查看异常类 267
12.6 本章习题 268
第13章 C#核心命名空间 272
13.1 数学运算 272
13.1.1 自然对数常数和圆周率常数 272
13.1.2 三角函数 273
13.1.3 自然对数与指数函数 274
13.1.4 数值比较运算 275
13.1.5 近似值运算 276
13.1.6 绝对值运算 277
13.1.7 除法运算 277
13.2 取得随机数 277
13.3 数值类型结构 280
13.3.1 整数类型结构 281
13.3.2 浮点数类型结构 283
13.3.3 Boolean 284
13.3.4 Decimal 285
13.3.5 Char 285
13.4 System.Array类 287
13.5 本章习题 289
第14章 字符串处理 291
14.1 字符串(String)类 291
14.1.1 认识字符串 291
14.1.2 创建String类对象 292
14.1.3 String类的属性成员 293
14.1.4 字符串查看和比较 294
14.1.5 分割字符串与获取子字符串 297
14.1.6 字符删除、插入及大小写转换 300
14.1.7 合并字符串 303
14.2 动态字符串(StringBuilder)类 304
14.3 格式化字符串 307
14.3.1 格式化概述 307
14.3.2 自定义数值格式 309
14.3.3 日期时间格式化 312
14.3.4 ToString方法 316
14.4 本章习题 317
第15章 集合 319
15.1 System.Collections命名空间 319
15.2 列举接口 320
15.3 ICollection接口和实现类 324
15.3.1 ICollection接口 325
15.3.2 堆栈与Stack类 325
15.3.3 队列与Queue类 328
15.3.4 BitArray类 331
15.4 IList接口 334
15.4.1 IList接口成员 335
15.4.2 ArrayList类 335
15.4.3 方法Sort()与对象排序 338
15.5 IDictionary接口 340
15.5.1 哈希与HashTable类 340
15.5.2 二元搜索与SortList类 343
15.5.3 IDictionaryEnumerator接口 345
15.6 IComparable接口 347
15.7 本章习题 350
第16章 泛型 352
16.1 C#与泛型 352
16.1.1 集合的未定类型 352
16.1.2 设计泛型类 354
16.2 列举 357
16.2.1 实现IEnumerable〈T〉 357
16.2.2 使用Iterator 361
16.3 default关键字 363
16.4 Nullable类型 364
16.5 本章习题 366
第17章 线程 368
17.1 线程 368
17.2 应用线程 368
17.2.1 Thread类 369
17.2.2 创建线程 370
17.2.3 暂停线程——使用Sleep()和Join() 374
17.3 线程状态 378
17.3.1 判断线程的结束 378
17.3.2 取得线程状态 380
17.4 避免资源访问冲突 381
17.4.1 lock语句 381
17.4.2 Monitor类 384
17.5 终止线程 388
17.6 线程管理(Thread Pool) 391
17.7 死锁(Deadlock) 394
17.8 本章习题 394
第18章 IO与数据流 396
18.1 IO类概述 396
18.1.1 数据流的概念 396
18.1.2 IO类 397
18.2 文件目录操作 398
18.2.1 与文件目录有关的类 398
18.2.2 操作目录 399
18.2.3 操作文件 402
18.3 数据流 408
18.3.1 读写字节数据 408
18.3.2 内存数据流(MemoryStream) 411
18.3.3 文件数据流FileStream 414
18.3.4 提升数据读写性能——使用缓冲数据流 416
18.4 字符数据(Text Data)读写 418
18.4.1 TextReader类 419
18.4.2 TextWriter类 419
18.4.3 使用派生类 420
18.5 随机访问 422
18.6 异步IO 424
18.7 隔离存储 426
18.8 本章习题 432
第19章 网络技术 433
19.1 地址与DNS 433
19.2 Socket应用程序 437
19.2.1 命名空间System.Net.Sockets 437
19.2.2 实现Socket应用程序的要点 438
19.2.3 创建TCP联机 438
19.2.4 客户端应用程序 440
19.2.5 服务器端应用程序 443
19.2.6 网络数据流 447
19.3 Web数据流 448
19.3.1 System.Net命名空间 448
19.3.2 URI与Uri类 449
19.3.3 WebRequest和WebResponse 450
19.3.4 对HTTP通信协议的支持 453
19.3.5 WebClient类 457
19.4 本章习题 460
第20章 序列化(Serialization) 461
20.1 序列化类 461
20.2 自定义序列化行为 466
20.3 序列化属性的继承 469
20.4 修正无法序列化的数据 471
20.5 本章习题 474
第21章 事件与代理 476
21.1 关于事件 476
21.2 关于代理 478
21.2.1 代理类型 478
21.2.2 善用代理 480
21.3 事件处理 483
21.3.1 代理与事件机制 483
21.3.2 事件处理程序 484
21.3.3 EventArgs类型自变量 486
21.3.4 内置的代理类型——事件处理器(EventHandler) 489
21.4 多重传送代理(Multicasting) 492
21.5 事件的多重处理 493
21.6 匿名方法 497
21.7 本章习题 499
第22章 Windows应用程序 501
22.1 创建窗体 501
22.1.1 创建Form对象 501
22.1.2 使用Express创建Windows应用程序 502
22.1.3 窗体的属性 506
22.2 事件处理 508
22.2.1 窗体事件 509
22.2.2 事件处理器EventHandler 511
22.2.3 键盘事件 512
22.2.4 鼠标事件 516
22.2.5 Paint事件 520
22.3 消息对话框(Message Box) 522
22.4 控件 525
22.5 在可视化环境中使用控件 527
22.6 标签和文本框 528
22.7 按钮与ButtonBase类 533
22.7.1 按钮(Button) 534
22.7.2 CheckBox、RadioButton及GroupBox 538
22.8 ListBox和ComboBox 539
22.8.1 ListBox控件 539
22.8.2 ComboBox控件 545
22.9 本章习题 549
第23章 绘图技术 551
23.1 关于GDI+ 551
23.2 绘图基础及Graphics对象 551
23.2.1 使用Graphics类 551
23.2.2 坐标系统 554
23.2.3 Point结构数据类型 555
23.2.4 Pen类 555
23.2.5 Color结构数据类型 556
23.3 图形绘制 556
23.3.1 绘制矩形和多边形 556
23.3.2 绘制弧线和椭圆 559
23.4 文字输出 564
23.4.1 绘制字符串 564
23.4.2 Font与FontFamily 566
23.4.3 StringFormat类型对象 568
23.5 绘制曲线 572
23.5.1 连接曲线点 572
23.5.2 绘制一般曲线 573
23.5.3 贝兹曲线(Bezier Spline) 578
23.6 路径和裁剪区域 582
23.6.1 路径(Path) 582
23.6.2 转换路径 585
23.7 笔刷(Brush) 588
23.7.1 SolidBrush类 589
23.7.2 HatchBrush类 590
23.7.3 渐变 594
23.7.4 运用PathGradientBrush 599
23.8 本章习题 601
第24章 编写数据库应用程序 603
24.1 OleDB简介 603
24.2 访问数据库的步骤 604
24.3 访问Access数据库演示 606
24.3.1 设置Access数据库 606
24.3.2 建立操作数据库的简单程序 611
24.4 深入理解ADO.NET 615
24.4.1 什么是ADO.NET 615
24.4.2 向DateSet中填充数据 617
24.4.3 归纳DataAdapter的用法 618
24.4.4 使用DataGridView控件 619
24.5 本章习题 624
附录 625