第Ⅰ部分 C#语言 3
第1章 C#简介 3
1.1 什么是.NET Framework 3
1.1.1 .NET Framework的内容 4
1.1.2 如何用.NET Framework编写应用程序 4
1.2 什么是C# 7
1.2.1 用C#能编写什么样的应用程序 7
1.2.2 本书中的C# 8
1.3 Visual Studio 2005 8
1.3.1 Visual Studio 2005 Express产品 8
1.3.2 VS解决方案 9
1.4 小结 9
第2章 编写C#程序 10
2.1 Visual Studio 2005开发环境 10
2.2 控制台应用程序 13
2.2.1 Solution Explorer 15
2.2.2 Properties窗口 16
2.2.3 ErrorList窗口 16
2.3 Windows Forms应用程序 17
2.4 小结 20
第3章 变量和表达式 22
3.1 C#的基本语法 22
3.2 变量 26
3.2.1 简单类型 26
3.2.2 变量的命名 30
3.2.3 字面值 31
3.2.4 变量的声明和赋值 33
3.3 表达式 34
3.3.1 数学运算符 34
3.3.2 赋值运算符 38
3.3.4 命名空间 39
3.3.3 运算符的优先级 39
3.4 小结 42
3.5 练习 43
第4章 流程控制 44
4.1 布尔逻辑 44
4.1.1 位运算符 46
4.1.2 布尔赋值运算符 50
4.1.3 运算符的优先级更新 51
4.2 goto语句 52
4.3 分支 53
4.3.1 三元运算符 53
4.3.2 if语句 54
4.3.3 switch语句 57
4.4 循环 60
4.4.1 do循环 61
4.4.2 while循环 63
4.4.3 for循环 65
4.4.4 循环的中断 69
4.4.5 无限循环 70
4.5 小结 71
4.6 练习 71
第5章 变量的更多内容 73
5.1 类型转换 73
5.1.1 隐式转换 73
5.1.2 显式转换 75
5.1.3 使用Convert命令进行显式转换 77
5.2 复杂的变量类型 80
5.2.1 枚举 81
5.2.2 结构 85
5.2.3 数组 87
5.3 字符串的处理 94
5.4 小结 98
5.5 练习 98
第6章 函数 100
6.1 定义和使用函数 101
6.1.1 返回值 102
6.1.2 参数 104
6.2 变量的作用域 111
6.2.1 其他结构中变量的作用域 113
6.2.2 参数和返回值与全局数据 115
6.3 Main()函数 116
6.4 结构函数 119
6.5 函数的重载 120
6.6 委托 121
6.8 练习 124
6.7 小结 124
第7章 调试和错误处理 126
7.1 Visual Studio中的调试 126
7.1.1 非中断(正常)模式下的调试 127
7.1.2 中断模式下的调试 134
7.2 错误处理 143
7.3 小结 149
7.4 练习 150
第8章 面向对象编程简介 151
8.1 什么是面向对象编程 151
8.1.1 什么是对象 152
8.1.2 所有的东西都是对象 154
8.1.3 对象的生命周期 155
8.1.4 静态和实例类成员 156
8.2 OOP技术 156
8.2.1 接口 157
8.2.2 继承 158
8.2.3 多态性 160
8.2.4 对象之间的关系 161
8.2.5 运算符重载 163
8.2.6 事件 163
8.2.7 引用类型和值类型 163
8.3 Windows应用程序中的OO P 164
8.4 小结 166
8.5 练习 167
第9章 定义类 168
9.1 C#中的类定义 168
9.2 System.Object 173
9.3 构造函数和析构函数 174
9.4 Visual Studio 2005中的OOP工具 178
9.4.1 Class View窗口 178
9.4.2 对象浏览器 181
9.4.3 添加类 182
9.4.4 类图 183
9.5 类库项目 184
9.6 接口和抽象类 187
9.7 结构类型 189
9.8 小结 191
9.9 练习 192
第10章 定义类成员 193
10.1 成员定义 193
10.1.1 定义字段 193
10.1.2 定义方法 194
10.1.3 定义属性 195
10.1.4 在类图中添加成员 200
10.1.5 重制成员 202
10.2 类成员的其他议题 203
10.2.1 隐藏基类方法 203
10.2.2 调用重写或隐藏的基类方法 205
10.2.3 嵌套的类型定义 206
10.3 接口的实现 207
10.4 部分类定义 210
10.5 示例应用程序 212
10.5.1 规划应用程序 212
10.5.2 编写类库 213
10.5.3 类库的客户应用程序 219
10.6 小结 220
10.7 练习 221
第11章 集合、比较和转换 222
11.1 集合 222
11.1.1 使用集合 223
11.1.2 定义集合 229
11.1.3 索引符 230
11.1.4 给CardLib添加Cards集合 232
11.1.5 关键字值集合和IDictionary 235
11.1.6 迭代器 236
11.1.7 深度复制 241
11.1.8 给CardLib添加深度复制 243
11.2 比较 245
11.2.1 类型比较 245
11.2.2 值比较 250
11.3 转换 266
11.3.1 重载转换运算符 266
11.3.2 as运算符 267
11.4 小结 268
11.5 练习 269
第12章 泛型 271
12.1 泛型的概念 271
12.2.1 可空类型 272
12.2 使用泛型 272
12.2.2 System.Collections.Generic命名空间 279
12.3 定义泛型 288
12.3.1 定义泛型类 288
12.3.2 定义泛型接口 300
12.3.3 定义泛型方法 300
12.3.4 定义泛型委托 302
12.4 小结 302
12.5 练习 303
第13章 其他OOP技术 304
13.1 ∷运算符和全局命名空间限定符 304
13.2 定制异常 305
13.3 事件 307
13.3.1 什么是事件 307
13.3.2 使用事件 309
13.3.3 定义事件 311
13.4 扩展和使用CardLib 319
13.5 小结 326
13.6 练习 327
第Ⅱ部分 Windows编程 331
第14章 Windows编程基础 331
14.1 控件 331
14.1.1 属性 332
14.1.2 控件的定位、停靠和对齐 333
14.1.3 事件 334
14.2 Button控件 336
14.2.1 Button控件的属性 337
14.2.2 Button控件的事件 337
14.3 Label和LinkLabel控件 339
14.4 TextBox控件 340
14.4.1 TextBox控件的属性 340
14.4.2 TextBox控件的事件 341
14.5 RadioButton和CheckBox控件 348
14.5.1 RadioButton控件的属性 349
14.5.2 RadioButton控件的事件 349
14.5.3 CheckBox控件的属性 349
14.5.4 CheckBox控件的事件 350
14.5.5 GroupBox控件 350
14.6 RichTextBox控件 354
14.6.1 RichTextBox控件的属性 354
14.6.2 RichTextBox控件的事件 355
14.7 ListBox和CheckedListBox控件 360
14.7.1 ListBox控件的属性 360
14.7.2 ListBox控件的方法 361
14.7.3 ListBox控件的事件 362
14.8 ListView控件 365
14.8.1 ListView控件的属性 365
14.8.3 ListView控件的事件 367
14.8.2 ListView控件的方法 367
14.8.4 ListViewItem 368
14.8.5 ColumnHeader 368
14.8.6 ImageList控件 368
14.9 TabControl控件 375
14.9.1 TabControl控件的属性 376
14.9.2 使用TabControl控件 376
14.10 小结 378
14.11 练习 379
第15章 Windows Forms的高级功能 380
15.1 菜单和工具栏 380
15.1.1 两个实质一样的控件 380
15.1.2 使用MenuStrip控件 381
15.1.3 手工创建菜单 381
15.1.5 给菜单添加功能 384
15.1.4 ToolStripMenuItem控件的其他属性 384
15.2 工具栏 386
15.2.1 ToolStrip控件的属性 387
15.2.2 ToolStrip的项 387
15.2.3 StatusStrip控件 392
15.2.4 StatusStripStatusLabel的属性 392
15.3 SDI和MDI应用程序 394
15.4 创建控件 403
15.4.1 调试用户控件 409
15.4.2 扩展LabelTextbox控件 410
15.5 小结 412
15.6 练习 413
第16章 使用通用对话框 414
16.1 对话框 414
16.2 如何使用对话框 415
16.3.1 OpenFileDialog 416
16.3 文件对话框 416
16.3.2 SaveFileDialog 427
16.4 打印 432
16.4.1 打印结构 432
16.4.2 打印多个页面 437
16.4.3 PageSetupDialog 439
16.4.4 PrintDialog 442
16.5 打印预览 446
16.5.1 PrintPreviewDialog 446
16.5.2 PrintPreviewControl 446
16.6 FontDialog和ColorDialog 447
16.6.1 FontDialog 447
16.6.2 ColorDialog 449
16.6.3 FolderBrowserDialog 450
16.7 小结 451
16.8 练习 452
第17章 部署Windows应用程序 453
17.1 部署概述 453
17.2 ClickOnce部署 454
17.3 Visual Studio安装和部署项目类型 463
17.4 Microsoft Windows安装程序结构 464
17.4.1 Windows Installer术语 464
17.4.2 WindowsInstaller的优点 466
17.5 为Simple Editor创建安装软件包 466
17.5.1 规划安装内容 467
17.5.2 创建项目 467
17.5.3 项目属性 468
17.5.4 安装编辑器 470
17.5.5 File System编辑器 471
17.5.6 File Types编辑器 474
1 7.5.7 Launch Condition编辑器 475
1 7.5.8 User Interface编辑器 476
17.6 构建项目 479
17.7 安装 479
17.7.1 Welcome 480
17.7.2 Read Me 481
17.7.3 License Agreement 481
17.7.4 Optional Files 481
17.7.5 选择安装文件夹 482
17.7.6 确认安装 483
17.7.7 进度 483
17.7.8 结束安装 484
17.7.9 运行应用程序 484
17.7.10 卸载 484
17.8 小结 484
17.9 练习 485
18.1 概述 489
第Ⅲ部分 Web编程 489
第18章 Web编程基础 489
18.2 ASP.NET运行库 490
18.3 创建简单的Web页面 490
18.4 服务器控件 496
18.5 事件处理程序 497
18.6 输入的有效性验证 502
18.7 状态管理 505
18.7.1 客户端的状态管理 506
18.7.2 服务器端的状态管理 508
18.8 身份验证和授权 510
18.8.1 身份验证的配置 511
18.8.2 使用安全控件 515
18.9 读写SQL Server数据库 517
18.11 练习 525
18.10 小结 525
第19章 Web高级编程 526
19.1 示例站点 526
19.2 主页 527
19.3 站点导航 533
19.4 用户控件 535
19.5 个性化配置 537
19.5.1 个性化配置组 538
19.5.2 组件的个性化配置 539
19.5.3 定制数据类型中的个性化配置 539
19.5.4 匿名用户的个性化配置 540
19.6 Web Parts 541
19.6.1 WebParts管理器 542
19.6.2 Web Parts区域 542
19.6.3 Editor区域 544
19.6.4 Catalog区域 546
19.6.5 Connections区域 548
19.7 小结 550
19.8 练习 551
第20章 Web服务 552
20.1 Web服务推出之前 552
20.1.1 远程过程调用(RPC) 553
20.1.2 SOAP 553
20.2 使用Web服务的场合 554
20.2.1 宾馆旅行社代理应用程序 554
20.2.2 书籍发布应用程序 555
20.2.3 客户应用程序的类型 555
20.2.4 应用程序的体系结构 555
20.3 Web服务的体系结构 556
20.3.1 Web服务的搜索引擎 557
20.3.2 可以调用的方法 558
20.3.3 调用方法 559
20.3.4 SOAP和防火墙 561
20.3.5 WS-I基本个性化配置 561
20.4 Web服务和.NET Framework 561
20.4.1 创建Web服务 561
20.4.2 客户程序 563
20.5 创建一个简单的ASP.NETWeb服务 564
20.5.1 生成的文件 564
20.5.2 添加Web方法 565
20.6 测试Web服务 566
20.7 执行Windows客户程序 567
20.8 异步调用服务 570
20.9 执行ASP.NET客户程序 572
20.10 传送数据 572
20.11 小结 575
20.12 练习 576
第21章 部署Web应用程序 577
21.1 Internet Information Services 577
21.2 IIS配置 578
21.3 复制Web站点 582
21.4 预编译Web站点 583
21.5 Windows安装程序 584
21.5.1 创建安装程序 584
21.5.2 安装Web应用程序 586
21.6 小结 588
21.7 练习 589
第Ⅳ部分 数据访问 593
第22章 文件系统数据 593
22.1 流 593
22.2 用于输入和输出的类 594
22.2.1 File和Directory类 595
22.2.2 FileInfo类 596
22.2.3 DirectoryInfo类 597
22.2.4 FileStream对象 598
22.2.5 StreamWriter对象 604
22.2.6 StreamReader对象 606
22.2.7 读写压缩文件 612
22.3 串行化对象 616
22.4 监控文件结构 620
22.5 小结 626
22.6 练习 627
第23章 XML 628
23.1 XML文档 628
23.1.1 XML元素 628
23.1.2 属性 629
23.1.3 XML声明 630
23.1.4 XML文档的结构 630
23.1.5 XML命名空间 631
23.1.6 格式良好并有效的XML 632
23.1.7 验证XML文档 632
23.2 在应用程序中使用XML 637
23.2.1 XML文档对象模型 637
23.2.2 选择节点 646
23.3 小结 654
23.4 练习 654
第24章 数据库和ADO.NET 655
24.1 ADO.NET概述 655
24.1.1 ADO.NET名称的来源 655
24.1.2 ADO.NET的设计目标 656
24.2 ADO.NET类和对象概述 657
24.2.1 提供者对象 658
24.2.3 使用System.Data命名空间 659
24.2.2 用户对象 659
24.3 安装SQL Server和Northwind示例数据 660
24.3.1 安装SQL Express 661
24.3.2 安装Northwind示例数据库 661
24.4 用DataReader读取数据 662
24.5 用DataSet读取数据 668
24.5.1 用数据填充DataSet 668
24.5.2 访问DataSet中的表、行和列 668
24.6 更新数据库 671
24.6.1 给数据库添加行 675
24.6.2 删除行 681
24.7 在DataSet中访问多个表 683
24.7.1 ADO.NET中的关系 683
24.7.2 导航关系 684
24.8 XML和ADO.NET 691
24.9.1 DataAdapter对象中的SQL命令 694
24.9 ADO.NET中的SQL支持 694
24.9.2 直接执行SQL命令 697
25.9.3 调用SQL存储过程 699
24.10 小结 701
24.11 练习 702
第25章 数据绑定 703
25.1 安装SQL Server和示例数据 703
25.2 创建VS数据库项目 703
25.2.1 数据库对象 706
25.2.2 浏览数据库表和关系 707
25.3 给应用程序添加数据源 709
25.4 添加DataGridView 715
25.4.1 格式化DataGridView 716
25.4.2 添加不同类型的控件 718
25.4.3 查看生成的代码 719
25.4.4 更新数据库 720
25.5 小结 721
25.6 练习 721
第Ⅴ部分 其他技术 725
第26章 .NET程序集 725
26.1 组件 725
26.1.1 组件的优点 726
26.1.2 组件的简史 726
26.2 .NET程序集的功能 727
26.2.1 自说明性 727
26.2.2 .NET程序集和.NET Framework类库 727
26.2.3 跨语言的程序设计 728
26.2.4 与COM和其他旧代码的交互操作 728
26.3 程序集的结构 729
26.3.1 查看程序集的内容 731
26.3.2 清单 734
26.3.3 程序集属性 737
26.4 调用程序集 741
26.5.1 私有程序集 744
26.5.2 共享程序集 744
26.5 私有和共享程序集 744
26.5.3 搜索程序集 748
26.6 小结 748
26.7 练习 749
第27章 属性 750
27.1 什么是属性 750
27.2 反射 753
27.3 内置属性 756
27.3.1 System.Diagnostics.ConditionalAttribute 757
27.3.2 System.ObsoleteAttribute 759
27.3.3 System.SerializableAttribute 760
27.3.4 System.Reflection.AssemblyDelaySignAttribute 762
27.4.1 TestCaseAttribute 766
27.4 定制属性 766
27.4.2 System.AttributeUsageAttribute 770
27.4.3 使用属性生成数据库表 776
27.5 小结 790
第28章 XML文档说明 791
28.1 添加XML文档说明 791
28.1.1 XML文档说明的注释 793
28.1.2 使用类图添加XML文档说明 799
28.1.3 生成XML文档说明文件 802
28.1.4 带有XML文档说明的应用程序示例 805
28.2 使用XML文档说明 807
28.2.1 编程处理XML文档说明 807
28.2.2 用XSLT格式化XML文档说明 809
28.2.3 NDoc 810
28.4 练习 811
28.3 小结 811
第29章 网络 812
29.1 联网概述 812
29.1.1 名称的解析 814
29.1.2 统一资源标识符 816
29.1.3 TCP和UDP 817
29.1.4 应用协议 817
29.2 网络编程选项 818
29.3 WebClient 819
29.4 WebRequest和WebResponse 821
29.5 TcpListener和TcpClient 828
29.6 小结 835
29.7 练习 836
第30章 GDI+简介 837
30.1 图形绘制概述 837
30.1.2 对象的删除 838
30.1.1 Graphics类 838
30.1.3 坐标系统 839
30.1.4 颜色 846
30.2 使用Pen类绘制线条 847
30.3 使用Brush类绘制图形 849
30.4 使用Font类绘制文本 851
30.5 使用图像进行绘制 855
30.5.1 使用纹理画笔进行绘图 857
30.5.2 使用钢笔绘制图像 858
30.5.3 双倍缓冲 860
30.6 GDI+的高级功能 862
30.6.1 剪切 862
30.6.2 System.Drawing.Drawing2D 863
30.6.3 System.Drawing.Imaging 864
30.7 小结 864
30.8 练习 864