第1章 介绍计算机、Internet和Visual Basic 1
1.1 简介 2
1.2 什么是计算机 2
1.3 计算机的结构 3
1.4 早期的操作系统 3
1.5 个人计算、分布式计算和客户/服务器计算 4
1.6 硬件趋势 4
1.7 Microsoft的Windows操作系统 5
1.8 机器语言、汇编语言和高级语言 5
1.9 Visual Basic 6
1.10 C、C++、Java和Visual C# 7
1.11 其他高级语言 8
1.12 结构化编程 8
1.13 关键的软件趋势:对象技术 8
1.14 Internet和万维网 9
1.15 可扩展标记语言(XML) 10
1.16 Microsoft的.NET简介 10
1.17 .NET框架和公共语言运行时(CLR) 10
1.18 测试Visual Basic应用程序Advanced Painter 11
1.19 (唯一必修的案例研究小节)软件工程案例研究:介绍对象技术和UML 13
1.20 小结 17
1.21 Web资源 17
第2章 Visual Basic 2008 Express IDE简介 26
2.1 简介 26
2.2 Visual Studio 2008 IDE概述 27
2.3 菜单栏和工具栏 31
2.4 浏览Visual Studio IDE 33
2.5 使用帮助 37
2.6 使用可视化编程创建一个简单的显示文本和图像的应用程序 38
2.7 小结 47
2.8 Web资源 48
第3章 Visual Basic简介 56
3.1 简介 57
3.2 显示一行文本 57
3.3 使用Visual Basic Express创建第一个应用程序 60
3.4 使用多条语句显示一行文本 66
3.5 整数相加 67
3.6 内存概念 69
3.7 算术运算 69
3.8 决策判断:相等和关系运算符 72
3.9 使用消息框显示消息 75
3.10 (选修)软件工程案例研究:检查ATM需求文档 79
3.11 小结 85
3.12 Web资源 86
第4章 介绍类和对象 92
4.1 简介 92
4.2 类、对象、方法和实例变量 93
4.3 声明包含方法的类,并实例化这个类的对象 94
4.4 声明带参数的方法 97
4.5 实例变量和属性 99
4.6 值类型和引用类型 104
4.7 使用构造函数初始化对象 105
4.8 使用属性的Set访问符对数据进行验证 107
4.9 (选修)软件工程案例研究:确认ATM需求文档中的类 109
4.10 小结 115
第5章 控制语句:第Ⅰ部分 122
5.1 简介 123
5.2 算法 123
5.3 伪码 123
5.4 控制结构 124
5.5 If...Then选择语句 126
5.6 If...Then...Else选择语句 127
5.7 While循环语句 129
5.8 Do While...Loop循环语句 131
5.9 Do Until...Loop循环语句 131
5.10 复合赋值运算符 132
5.11 构建算法:计数器控制的循环 133
5.12 构建算法:标记控制的循环 137
5.13 构建算法:嵌套的控制语句 143
5.14 构建算法:嵌套的循环语句 146
5.15 使用Visual Basic编写Windows Forms应用程序 150
5.16 (选修)软件工程案例研究:在ATM系统中确认类的属性 154
5.17 小结 158
第6章 控制语句:第Ⅱ部分 168
6.1 简介 168
6.2 计数器控制的循环的本质 169
6.3 For...Next循环语句 169
6.4 使用For...Next语句的例子 173
6.5 GradeBook案例研究:Select...Case多重选择语句 176
6.6 Do...Loop While循环语句 181
6.7 Do...Loop Until循环语句 182
6.8 在循环语句中使用Exit语句 183
6.9 在循环语句中使用Continue语句 184
6.10 逻辑运算符 186
6.11 (选修)软件工程案例研究:确认ATM系统中对象的状态和活动 190
6.12 小结 194
第7章 方法:深入观察 200
7.1 简介 201
7.2 模块、类和方法 201
7.3 子程序过程:没有返回值的方法 202
7.4 函数:具有返回值的方法 204
7.5 共享方法和Math类 205
7.6 GradeBook案例研究:声明具有多个形参的方法 207
7.7 方法声明和使用的一些说明 209
7.8 方法调用堆栈和活动记录 210
7.9 隐式参数转换 211
7.10 Option Strict和数据类型转换 212
7.11 值类型和引用类型 213
7.12 框架类库的名字空间 214
7.13 传递参数:传值和传引用方式 215
7.14 声明的作用域 217
7.15 案例研究:生成随机数 219
7.16 案例研究:机会游戏 224
7.17 方法的重载 227
7.18 可选参数 229
7.19 递归 230
7.20 (选修)软件工程案例研究:确认ATM系统中类的操作 233
7.21 小结 238
第8章 数组 249
8.1 简介 250
8.2 数组 250
8.3 声明和分配数组 251
8.4 使用数组的例子 253
8.5 案例研究:模拟洗牌和发牌 258
8.6 向方法传递数组 261
8.7 For Each...Next循环语句 263
8.8 GradeBook案例研究:使用数组存储成绩 264
8.9 使用Array类的Sort方法对数组进行排序 268
8.10 搜索数组 269
8.11 矩形数组 272
8.12 GradeBook案例研究:使用矩形数组 274
8.13 可变长度的形参列表 278
8.14 不规则数组 279
8.15 在执行时修改数组的长度:使用ReDim语句 279
8.16 传递数组:ByVal和ByRef 280
8.17 (选修)软件工程案例研究:ATM系统中对象之间的协作 283
8.18 小结 289
第9章 介绍LINQ和泛型集合 296
9.1 简介 296
9.2 使用LINQ查询数组 297
9.3 集合简介 303
9.4 使用LINQ查询泛型集合 305
9.5 Deitel LINQ资源中心 306
9.6 小结 306
第10章 类和对象:深入观察 311
10.1 简介 312
10.2 Time类案例研究 312
10.3 类的作用域 318
10.4 对象初始化值 318
10.5 默认构造函数和无参构造函数 319
10.6 Time类案例研究:重载构造函数 319
10.7 部分类 323
10.8 合成 324
10.9 使用Me引用访问当前对象 326
10.10 垃圾收集 328
10.11 类的共享成员 329
10.12 Const和ReadOnly成员 331
10.13 对象浏览器 333
10.14 Time类案例研究:创建类库 335
10.15 Time类案例研究:扩展方法 339
10.16 委托 341
10.17 lambda表达式 343
10.18 匿名类型 345
10.19 (选修)软件工程案例研究:开始对ATM系统的类进行编程 347
10.20 小结 351
第11章 面向对象编程:继承 360
11.1 简介 361
11.2 基类和派生类 361
11.3 Protected成员 363
11.4 基类和派生类的关系 363
11.5 派生类的构造函数 382
11.6 使用继承的软件工程 386
11.7 Object类 387
11.8 Friend成员 387
11.9 小结 388
第12章 面向对象编程:多态 393
12.1 简介 394
12.2 多态视频游戏 395
12.3 演示多态行为 396
12.4 抽象类和抽象方法 398
12.5 案例研究:使用多态的工资表系统类层次结构 399
12.6 NotOverridable方法和NotInheritable类 410
12.7 案例研究:创建和使用接口 411
12.8 (选修)软件工程案例研究:在ATM系统中使用继承和多态 418
12.9 小结 424
第13章 异常处理 429
13.1 简介 430
13.2 异常处理概述 430
13.3 例子:不使用异常处理的除数为零错误 431
13.4 例子:处理DivideByZeroException和FormatException 433
13.5 .NET异常类层次结构 437
13.6 Finally代码块 438
13.7 异常的属性 443
13.8 用户定义的异常类 447
13.9 小结 449
第14章 使用Windows Forms的图形用户界面 454
14.1 简介 455
14.2 Windows Forms 456
14.3 事件处理 457
14.4 控件的属性和布局 463
14.5 Label、TextBox和Button 466
14.6 GroupBox和Panel 467
14.7 CheckBox和RadioButton 469
14.8 PictureBox 475
14.9 ToolTip 476
14.10 NumericUpDown控件 478
14.11 鼠标事件处理 479
14.12 键盘事件处理 481
14.13 菜单 483
14.14 MonthCalendar控件 490
14.15 DateTimePicker控件 491
14.16 LinkLabel控件 492
14.17 ListBox控件 495
14.18 CheckedListBox控件 498
14.19 ComboBox控件 499
14.20 TreeView控件 502
14.21 ListView控件 505
14.22 TabControl控件 509
14.23 多文档界面(MDI)窗口 513
14.24 可视化继承 518
14.25 用户定义控件 520
14.26 小结 523
第15章 使用Windows表现基础的GUI 539
15.1 简介 540
15.2 Windows表现基础(WPF) 540
15.3 XML基础知识 541
15.4 结构化数据 543
15.5 XML名字空间 547
15.6 使用XAML的描述性GUI编程 550
15.7 在Visual Basic Express中创建WPF应用程序 551
15.8 控件的布局 553
15.9 事件处理 557
15.10 命令和常见的应用程序任务 562
15.11 WPF GUI自定义 566
15.12 使用风格更改控件的外观 566
15.13 自定义窗口 570
15.14 使用控件模板定义控件的外观 571
15.15 使用数据绑定的数据驱动GUI 575
15.16 小结 579
15.17 Web资源 580
第16章 WPF图形和多媒体 592
16.1 简介 592
16.2 控制字体 593
16.3 基本形状 594
16.4 Polygon和Polyline 595
16.5 画刷 598
16.6 变换 602
16.7 WPF自定义:电视机GUI 603
16.8 动画 610
16.9 (选修)3D物体和变换 612
16.10 小结 616
第17章 字符串、字符和正则表达式 625
17.1 简介 626
17.2 字符和字符串的基础知识 626
17.3 String类的构造函数 627
17.4 String类的索引器、Length属性和CopyTo方法 628
17.5 比较字符串 629
17.6 在字符串中查找字符和子字符串 632
17.7 从字符串中提取子字符串 633
17.8 连接字符串 634
17.9 String类的其他方法 635
17.10 StringBuilder类 636
17.11 StringBuilder类的Length和Capacity属性、EnsureCapacity方法和索引器 637
17.12 StringBuilder类的Append和AppendFormat方法 638
17.13 StringBuilder类的Insert、Remove和Replace方法 639
17.14 Char结构的方法 641
17.15 洗牌和发牌模拟 643
17.16 正则表达式处理简介 645
17.17 小结 654
第18章 文件和流 663
18.1 简介 663
18.2 数据层次结构 664
18.3 文件和流 665
18.4 File和Directory类 666
18.5 创建顺序访问的文本文件 672
18.6 从顺序访问文本文件读取数据 678
18.7 案例研究:信用查询程序 681
18.8 串行化 685
18.9 使用对象串行化创建顺序访问文件 685
18.10 从顺序访问文件读取和反串行化数据 689
18.11 小结 692
第19章 XML和LINQ to XML 698
19.1 简介 698
19.2 文档类型定义(DTD) 699
19.3 W3C XML Schema文档 702
19.4 可扩展样式表语言和XSL转换 707
19.5 LINQ to XML:文档对象模型(DOM) 713
19.6 LINQ to XML:XML的轴属性 716
19.7 LINQ to XML:XML字面值和嵌入表达式 721
19.8 使用XslCompiledTransform类的XSLT 726
19.9 小结 727
19.10 Web资源 728
第20章 数据库和LINQ to SQL 735
20.1 简介 736
20.2 关系数据库 736
20.3 关系数据库概述:Books数据库 737
20.4 SQL 740
20.5 LINQ to SQL 746
20.6 LINQ to SQL:从数据库提取信息 747
20.7 更复杂的LINQ查询和数据绑定 750
20.8 使用LINQ从多个表提取数据 753
20.9 创建主/明细视图应用程序 755
20.10 使用LINQ to SQL编程:AddressBook案例研究 759
20.11 小结 763
20.12 工具和Web资源 763
第21章 ASP.NET和ASP.NET AJAX 770
21.1 简介 771
21.2 简单的HTTP传输 772
21.3 多层应用程序体系结构 774
21.4 创建和运行简单的Web窗体例子 775
21.5 Web控件 786
21.6 会话追踪 798
21.7 案例研究:在ASP.NET中连接到数据库 810
21.8 案例研究:安全书籍数据库应用程序 817
21.9 ASP.NET AJAX 836
21.10 新的ASP.NET 3.5数据控件 843
21.11 小结 843
21.12 Web资源 844
第22章 Windows通信基础(WCF)Web服务 855
22.1 简介 856
22.2 WCF服务基础知识 856
22.3 简单对象访问协议(SOAP) 857
22.4 表现状态传输(REST) 857
22.5 JavaScript对象记法(JSON) 858
22.6 发布和消费基于SOAP的WCF Web服务 858
22.7 发布和消费基于REST的XML Web服务 865
22.8 发布和消费基于REST的JSON Web服务 868
22.9 二十一点游戏Web服务:在基于SOAP的WCF Web服务中使用会话追踪 870
22.10 机票预订Web服务:在ASP.NET中访问数据库及调用服务 879
22.11 算式生成器:返回用户定义的类型 883
22.12 小结 891
22.13 Deitel Web服务资源中心 891
第23章 Silverlight、富Internet应用程序和多媒体 898
23.1 简介 899
23.2 平台概述 900
23.3 Silverlight运行时和工具安装 900
23.4 创建一个Silverlight WeatherViewer应用程序 900
23.5 动画和FlickrViewer 909
23.6 图像和深度缩放 913
23.7 音频和视频 922
23.8 隔离存储 926
23.9 Silverlight演示和Web资源 926
23.10 小结 927
第24章 数据结构和泛型集合 934
24.1 数据结构简介 935
24.2 泛型集合概述 939
24.3 泛型类和泛型方法 948
24.4 小结 960
附录A 运算符优先级 969
附录B 基本类型 970
附录C 数字系统 971
附录D ATM案例研究代码 981
附录E UML 2:其他图类型 1000
附录F ASCII字符集 1001
附录G Unicode 1002
附录H 使用Visual Basic 2008调试器 1011
索引 1030