第1章 C#简介 1
1.1 什么是.NET Framework 1
1.1.1 .NET Framework的内容 1
1.1.2 如何用.NET Framework编写应用程序 2
1.2 什么是C 4
1.2.1 用C#能编写什么样的应用程序 5
1.2.2 本书中的C 5
1.3 Visual Studio.NET 6
1.4 小结 7
第2章 编写C#程序 8
2.1 Visual Studio.NET开发环境 8
2.2 控制台应用程序 9
2.3 Windows Forms应用程序 14
2.4 小结 17
第3章 变量和表达式 18
3.1 C#的基本语法 18
3.2 变量 21
3.2.1 简单类型 22
3.2.2 变量的命名 25
3.2.3 字面值 27
3.2.4 变量声明和赋值 28
3.3 表达式 29
3.3.1 数学运算符 29
3.3.2 赋值运算符 33
3.3.3 运算符的优先级 34
3.3.4 名称空间 35
3.4 小结 38
3.5 练习 38
第4章 流程控制 40
4.1 布尔逻辑 40
4.1.1 位运算符 42
4.1.2 布尔赋值运算符 45
4.1.3 运算符的优先级更新 47
4.1.4 goto语句 47
4.2 分支 49
4.2.1 三元运算符 49
4.2.2 if语句 49
4.2.3 switch语句 53
4.3 循环 56
4.3.1 do循环 57
4.3.2 while循环 60
4.3.3 for循环 62
4.3.4 循环的中断 66
4.3.5 无限循环 67
4.4 小结 68
4.5 练习 68
第5章 变量的更多内容 69
5.1 类型转换 69
5.1.1 隐式转换 69
5.1.2 显式转换 71
5.1.3 使用Convert命令进行显式轮换 73
5.2 复杂的变量类型 76
5.2.1 枚举 76
5.2.2 结构 81
5.2.3 数组 84
5.3 字符串的处理 90
5.4 小结 95
5.5 练习 95
第6章 函数 97
6.1 定义和使用函数 98
6.1.1 返回值 99
6.1.2 参数 101
6.2 变量的作用域 108
6.2.1 其他结构中的变量作用域 111
6.2.2 参数和返回值与全局数据 112
6.3 MainO函数 114
6.4 结构函数 116
6.5 函数的重载 117
6.6 委托 119
6.7 小结 122
6.8 练习 122
第7章 调试和错误处理 124
7.1 Visual Studio中的调试 124
7.1.1 非中断(正常)模式下的调试 125
7.1.2 中断模式下的调试 131
7.2 错误处理 139
7.3 小结 146
7.4 练习 147
第8章 面向对象编程简介 148
8.1 什么是面向对象编程 148
8.1.1 什么是对象 149
8.1.2 所有的东西都是对象 151
8.1.3 对象的生命周期 151
8.2 静态和实例类成员 152
8.3 OOP技术 153
8.3.1 接口 153
8.3.2 继承 154
8.3.3 多态性 156
8.3.4 对象之间的关系 158
8.3.5 运算符重载 159
8.3.6 事件 160
8.3.7 引用类型和值类型 160
8.4 Windows应用程序中的OOP 161
8.5 小结 163
8.6 练习 164
第9章 定义类 165
9.1 C#中的类定义 165
9.2 System.Object 171
9.3 构造函数和析构函数 172
9.4 Visual Studio.NET中的OOP工具 176
9.4.1 Class View窗口 176
9.4.2 对象浏览器 178
9.4.3 添加类 179
9.5 类库工程 180
9.6 接口和抽象类 183
9.7 结构类型 185
9.8 阴影和深度复制 187
9.9 小结 187
9.10 练习 188
第10章 定义类成员 189
10.1 成员定义 189
10.1.1 定义域 189
10.1.2 定义方法 190
10.1.3 定义属性 191
10.2 VS成员向导 196
10.2.1 添加方法的向导 197
10.2.2 添加属性的向导 197
10.2.3 添加域的向导 198
10.3 成员属性 199
10.4 类成员的其他议题 199
10.4.1 隐藏基类方法 199
10.4.2 调用重写或隐藏的基类方法 201
10.4.3 嵌套的类型定义 202
10.5 接口的执行 203
10.6 范例应用程序 206
10.6.1 规划应用程序 206
10.6.2 编写类库 207
10.6.3 类库的客户应用程序 211
10.7 小结 213
10.8 练习 213
第11章 类的更多内容 214
11.1 集合 214
11.1.1 使用集合 215
11.1.2 定义集合 221
11.2 运算符重载 231
11.2.1 转换运算符 236
11.2.2 升级CardLib(第二部分) 237
11.3 高级转换 242
11.3.1 封箱和拆箱 242
11.3.2 is运算符 244
11.3.3 as运算符 247
11.4 深度复制 248
11.5 定制异常 252
11.6 小结 254
11.7 练习 255
第12章 事件 256
12.1 什么是事件 256
12.2 使用事件 257
12.2.1 处理事件 257
12.2.2 定义事件 260
12.3 扩展和使用CardLib 268
12.4 小结 276
12.5 练习 277
第13章 使用Windows Form控件 278
13.1 Windows窗体设计器 278
13.2 工具箱 279
13.3 控件 280
13.3.1 属性 280
13.3.2 Anchor和Dock属性 281
13.3.3 事件 282
13.4 Button控件 283
13.4.1 Button控件的属件 283
13.4.2 Button控件的事件 284
13.5 Label和LinkLabel控件 286
13.6 TexBox控件 287
13.6.1 TextBox控件的属性 287
13.6.2 TextBox控件的事件 288
13.7 RadioButton和CheckBox控件 297
13.7.1 RadioButton控件的属性 297
13.7.2 RadioButton控件的属件 297
13.7.3 CheckBox控件的属性 298
13.7.4 CheckBox控件的事件 298
13.7.5 GroupBox控件 299
13.8 RichTextBox控件 302
13.8.1 RichTextBox控件的属性 303
13.8.2 RichTextBox控件的事件 304
13.9 ListBox和CheckedLisBox控件 310
13.9.1 LisBox控件的属性 310
13.9.2 LisBox控件的方法 311
13.9.3 ListBox控件的事件 312
13.10 ComboBox控件 314
13.10.1 ComboBox控件的属性 314
13.10.2 ComboBox控件的事件 315
13.11 ListView控件 320
13.11.1 ListView控件的属性 321
13.11.2 ListView控件的方法 323
13.11.3 ListView控件的事件 323
13.11.4 ListViewItem 324
13.11.5 ColumnHeader 324
13.11.6 ImageList控件 324
13.12 StatusBar控件 331
13.12.1 StatusBar控件的属性 331
13.12.2 StatusBar控件的事件 332
13.12.3 StatusBarPanel类 332
13.12.4 StatusBar范例 332
13.13 TabControl控件 334
13.13.1 TabControl控件的属性 335
13.13.2 使用TabControl控件 335
13.14 小结 337
第14章 Windows Forms的高级功能 338
14.1 菜单 338
14.1.1 使用菜单控件 338
14.1.2 MenuItem控件 339
14.1.3 MenuItem控件的事件 340
14.1.4 ContextMenu控件 341
14.2 工具栏 345
14.2.1 Toolbar控件的属性 346
14.2.2 Toolbar控件的事件 346
14.2.3 ToolbarButton控件的属性 347
14.3 SDI和MDI应用程序 352
14.4 创建控件 364
14.4.1 调试用户控件 370
14.4.2 扩展LabelTextbox控件 371
14.5 小结 375
14.6 练习 375
第15章 使用对话框 376
15.1 对话框 376
15.2 如何使用对话框 378
15.3 文件对话框 378
15.3.1 OpenFileDialog 379
15.3.2 SaveFileDialog 391
15.4 打印 396
15.4.1 打印结构 396
15.4.2 打印多个页面 401
15.4.3 页面设置 403
15.4.4 打印对话框 406
15.5 打印预览 410
15.5.1 PrinPreviewDialog 410
15.5.2 PrintPreviewControl 411
15.6 FontDialog和ColorDialog 412
15.6.1 FontDialog 412
15.6.2 ColorDialog 414
15.7 小结 415
15.8 练习 415
第16章 GDI+简介 417
16.1 图形绘制概述 417
16.1.1 Graphics类 417
16.1.2 对象的删除 418
16.1.3 坐标系统 419
16.1.4 颜色 424
16.2 使用Pen类绘制线条 424
16.3 使用Brush类绘制图形 426
16.4 使用Font类绘制文本 429
16.5 使用图像进行绘制 433
16.5.1 使用纹理画笔进行绘图 435
16.5.2 使用钢笔绘制图像 437
16.5.3 使用图像绘制文本 438
16.5.4 双倍缓冲 439
16.6 GDI+的高级功能 441
16.6.1 剪切 441
16.6.2 打印 442
16.6.3 打印预览 442
16.6.4 System.Drawing.Drawing2D 443
16.6.5 System.Drawing.Imaging 443
16.7 小结 443
第17章 部署Wingdows应用程序 445
17.1 部署的含义 445
17.2 部署工程类型 446
17.3 Microsoft Windows安装程序结构 447
17.3.1 Windows Installer术语 447
17.3.2 Windows Installer的优点 449
17.4 为简单的编辑器创建一个安装程序软件包 449
17.4.1 规划安装内容 450
17.4.2 创建工程 450
17.4.3 工程属性 451
17.4.4 安装编辑器 453
17.4.5 File System编辑器 454
17.4.6 File Types编辑器 458
17.4.7 Launch Condition编辑器 459
17.4.8 User Interface编辑器 460
17.5 构建工程 463
17.6 安装 464
17.6.1 Welcome 465
17.6.2 Read Me 465
17.6.3 License Agreement 465
17.6.4 Optional Files 466
17.6.5 选择安装文件夹 467
17.6.6 确认安装 467
17.6.7 进度 468
17.6.8 结束安装 468
17.6.9 运行应用程序 469
17.6.10 自我修复 469
17.6.11 卸载 470
17.7 小结 471
第18章 获取数据 472
18.1 在VS中访问数据 472
18.1.1 数据访问简史 472
18.1.2 ADO.NET引言 473
18.2 在VS中查看数据 474
18.2.1 连接到数据库 475
18.2.2 数据库表和关系 477
18.3 在应用程序中访问数据库 479
18.4 查看完成的结果 485
18.5 在DataSet中导航 487
18.6 添加列表 488
18.7 添加Datagrid 490
18.7.1 格式化Datagrid 490
18.7.2 更新数据库 491
18.8 XML 492
18.8.1 XML文档 492
18.8.2 XML名称空间 495
18.8.3 格式良好并有效的XML 496
18.8.4 验证XML文档 497
18.8.5 C#中的XML自动文档 502
18.9 小结 505
18.10 练习 506
第19章 使用ADO.NET访问数据 507
19.1 ADO.NET概述 507
19.1.1 ADO.NET名称的来源 507
19.1.2 ADO.NET的设计目标 507
19.2 ADO.NET类和对象概述 508
19.2.1 提供者对象 509
19.2.2 用户对象 510
19.2.3 使用System.Data名称空间 510
19.2.4 在DataSet中访问多个表 530
19.3 XML和ADO.NET 537
19.4 在ADO.NET DataSets中的XML支持 537
19.5 ADO.NET中的SQL支持 539
19.5.1 在DataAdapter中的SQL命令 539
19.5.2 直接执行SQL命令 542
19.6 关于ADO.NET的进一步说明 544
19.7 小结 544
19.8 练习 545
第20章 使用文件 546
20.1 流 546
20.2 用于输入和输出的类 547
20.2.1 File和Directory类 548
20.2.2 FileInfo类 548
20.2.3 DirectoryInfo类 549
20.2.4 FileStream对象 550
20.2.5 Stream Writer对象 556
20.2.6 StreamReader对象 558
20.3 高级主题 563
20.3.1 监控文件结构 563
20.3.2 异步访问文件 570
20.4 小结 575
20.5 练习 576
第21章 NET装配件 577
21.1 装配件简介 577
21.1.1 组件 577
21.1.2 组件的优点 577
21.1.3 组件的简短历史 578
21.2 自我说明的.NET装配件 579
21.3 装配件的结构 580
21.4 创建装配件 582
21.4.1 创建类库 582
21.4.2 Shapes源代码 582
21.4.3 编译类库 583
21.5 查看装配件的内容 584
21.5.1 将ILDASM作为外部工具添加到VS中 584
21.5.2 使用ILDASM 585
21.5.3 清单 587
21.6 装配件属性 589
21.6.1 AssmblyInfo.cs 589
21.6.2 版本号 591
21.6.3 版本属性 591
21.6.4 AssemblyVersion属性 592
21.6.5 版本兼容性 592
21.7 调用装配件 593
21.8 私有和共享装配件 596
21.8.1 私有装配件 596
21.8.2 共享装配件 596
21.8.3 搜索装配件 599
21.9 小结 600
21.10 练习 600
第22章 属性 602
22.1 什么是属性 602
22.2 反射 605
22.3 内置属性 609
22.3.1 System.Diagnostics.ConditionalAttribute 610
22.3.2 System.ObsoleteAttribute 612
22.3.3 System.SerializableAttribute 614
22.3.4 System.Reflection.AssemblyDelaySignAttribute 616
22.4 定制属性 620
22.4.1 TesCaseAttribute 621
22.4.2 System.AttributeUsageAttribute 625
22.5 小结 647
第23章 Web编程基础 648
23.1 引言 648
23.2 Internet简史 648
23.2.1 World Wide Web 649
23.2.2 Web的工作原理 649
23.2.3 HTTP-超文本传输协议 650
23.3 Web编程101 652
23.3.1 HTML 652
23.3.2 HTML窗体 655
23.3.3 静态和活动的Web页 659
23.4 Web的演化过程 665
23.5 NET Web编程 665
23.5.1 ASP.NET 666
23.5.2 WebForms 666
23.6 小结 667
第24章 ASP.NET应用程序 668
24.1 建立Weblog 669
24.1.1 应用程序的基础 669
24.1.2 添加活动元素 672
24.2 Weblog项目 676
24.2.1 存储Weblog项目 676
24.2.2 显示Weblog项目 679
24.2.3 显示时间 685
24.2.4 改善页面的外观 687
24.2.5 显示项目列表 692
24.3 创建新Weblog项目 699
24.3.1 编辑Weblog项目 706
24.3.2 给项目排序 710
24.4 用户会话和Cookies 713
24.5 小结 717
24.6 练习 717
第25章 Web服务 718
25.1 Web服务推出之前 718
25.1.1 远程过程调用(RPC) 719
25.1.2 SOAP 719
25.2 使用Web服务的场合 720
25.2.1 宾馆旅行社代理应用程序 721
25.2.2 书籍发布应用程序 721
25.2.3 客户应用程序的类型 721
25.2.4 应用程序的体系结构 721
25.3 Web服务的体系结构 722
25.3.1 Web服务的搜索引擎 723
25.3.2 Web服务的发现 724
25.3.3 可以调用的方法 725
25.3.4 调用方法 726
25.4 Web服务和.NET Framework 728
25.4.1 创建Web服务 728
25.4.2 客户程序 730
25.5 创建一个简单的ASP.NET Wed服务 730
25.5.1 生成的文件 731
25.5.2 添加Web方法 732
25.6 测试Web服务 733
25.7执行Windows客户程序 734
25.8 执行ASP.NET客户程序 738
25.9 小结 740
第26章 案例分析1--调查问卷Web站点 741
26.1 调查问卷Web站点 741
26.2 版本1 742
26.2.1 要求 742
26.2.2 对象模型的设计(事务逻辑层) 742
26.2.3 测试 747
26.2.4 数据结构(数据层) 749
26.2.5 对象的执行 750
26.2.6 用户界面(表示层) 758
26.2.7 版本1的价值 766
26.3 版本2 768
26.3.1 其他要求 768
26.3.2 调查结果工具 768
26.3.3 一人一张选票 780
26.3.4 调查问卷控件 783
26.4 三层和调查问卷应用程序 786
26.5 小结 786
第27章 案例分析2--在线时事通讯管理器 788
27.1 应用程序概览 788
27.2 应用程序的设计 789
27.3 数据和事务对象 790
27.3.1 数据库设计 790
27.3.2 访问数据库的事务类 793
27.3.3 配置数据管理 796
27.4 管理用户界面 801
27.4.1 创建用户控件 802
27.4.2 Lists管理器页面 803
27.4.3 管理订阅者 814
27.4.4 给订阅者发送电子邮件 817
27.4.5 Utilities类 822
27.4.6 管理新闻归档文件 822
27.4.7 在线修改设置 825
27.4.8 在线修改布局 828
27.4.9 为用户创建订阅窗体 829
27.4.10 订阅邮件列表 831
27.4.11 保证应用程序的安全性 835
27.4.12 编译装配件 838
27.4.13 运行应用程序 839
27.4.14 浏览器的兼容问题 839
27.5 小结 839
第28章 范例--用C#建立一个在线购物车 841
28.1 引言 841
28.2 建立基础 841
28.2.1 深入理解在线购物车模型 841
28.2.2 定义需求 842
28.2.3 生成数据库模型 842
28.3 开始编码 844
28.3.1 应用程序的架构 844
28.3.2 类别列表块 844
28.3.3 商品的细目 849
28.3.4 购物车筐 852
28.3.5 检验系统 855
28.3.6 跟踪订单 856
28.4 站点的部署 857
28.5 改进在线购物车程序 857
28.5.1 功能的改进 858
28.5.2 技术方面的改进 858
28.6 结论 858
附录A 设置PATH环境变量 859
A.1 Windows2000/XP 859
A.2 WindowsNT 860
A.3 Windows95/98/ME 861
附录B 安装MSDE 862
B.1 安装Microsoft Database Engine(MSDE) 862
B.2 把Northwind导入MSDE 866
附录C C#编译选项 870