第1章 基本介绍 1
1.1简介 2
1.2 Microsoft的Windows操作系统 2
1.3 C、C++和Java 2
1.4 Visual C 3
1.5重要的软件趋势:对象技术 4
1.6 Internet与万维网 4
1.7可扩展标记语言(XML) 5
1.8 Microsoft.NET简介 5
1.9.NET框架和公共语言运行环境 6
1.10尝试C#高级画图程序 6
1.11(必读)软件工程案例研究:对象技术和UML介绍 7
1.12小结 11
1.13 Web资源 11
第2章Visual C# 2008 Express Edition IDE简介 12
2.1简介 13
2.2 Visual Studio 2008 IDE概述 13
2.3菜单栏和工具栏 16
2.4 Visual Studio IDE导航 18
2.5使用帮助 21
2.6用可视化编程创建简单的程序,显示文本和图形 23
2.7小结 29
2.8 Web资源 30
第3章C#程序入门 31
3.1简介 32
3.2一个简单的C#程序:显示一行文本 32
3.3在Visual C # Express中创建简单的程序 35
3.4修改简单的C#程序 41
3.5用Console.Write和Console.WriteLine格式化文本 42
3.6另一个C#程序:整数相加 43
3.7算术运算 46
3.8判断:相等运算符和关系运算符 47
3.9(选读)软件工程案例研究:分析ATM需求文档 50
3.10小结 56
3.11 Web资源 56
第4章 简要介绍类和对象 57
4.1简介 58
4.2类、对象、方法、属性和实例变量 58
4.3声明带方法的类并实例化类的对象 59
4.4声明带参数的方法 61
4.5实例变量和属性 64
4.6带属性的UML类框图 67
4.7带属性和set与get访问方法的软件工程 68
4.8自实现属性 68
4.9值类型与引用类型的比较 70
4.10用构造函数初始化对象 70
4.11浮点数与decimal类型 72
4.12(选读)软件工程案例研究:确定需求文档中的类 76
4.13小结 81
第5章 控制语句(1) 82
5.1简介 83
5.2控制结构 83
5.3 if单选择语句 84
5.4 if...else双选择语句 85
5.5 while循环语句 88
5.6计数器控制循环 89
5.7制订算法:标记控制循环 91
5.8制订算法:嵌套控制语句 95
5.9复合赋值运算符 97
5.10增量和减量运算符 98
5.11简单类型 100
5.12(选读)软件工程案例研究:确定ATM系统的类属性 100
5.13小结 103
第6章 控制语句(2) 104
6.1简介 105
6.2计数器控制循环的实质 105
6.3 for循环语句 106
6.4使用for语句的例子 109
6.5 do...while循环语句 112
6.6 switch多选择语句 113
6.7 break和continue语句 118
6.8逻辑运算符 120
6.9(选读)软件工程案例研究:确定ATM系统中对象的状态和活动 124
6.10小结 127
第7章 方法:深入探究 128
7.1简介 129
7.2 C#的代码包装 129
7.3静态方法,静态变量和Math类 130
7.4声明多参数方法 132
7.5关于方法声明与使用 134
7.6方法调用栈与激活记录 135
7.7变元提升与强制类型转换 136
7.8.NET框架类库 137
7.9案例研究:随机数生成 138
7.10案例研究:机会游戏(引入枚举) 141
7.11声明的作用域 145
7.12方法重载 147
7.13递归 149
7.14传递变元:按值传递和按引用传递 151
7.15(选读)软件工程案例研究:确定ATM系统的类操作 153
7.16小结 157
第8章 数组 159
8.1简介 160
8.2数组 160
8.3声明与创建数组 161
8.4数组使用举例 161
8.5案例研究:洗牌与发牌模拟 168
8.6 foreach语句 170
8.7将数组和数组元素传入方法 172
8.8按值和按引用传递数组 173
8.9案例研究:GradeBook类用数组存储成绩 176
8.10多维数组 180
8.11案例研究:GradeBook类使用矩形数组 183
8.12游长变元表 187
8.13使用命令行变元 188
8.14(选读)软件工程案例研究:ATM系统中对象间的协作 189
8.15小结 194
第9章LINQ与泛型集合介绍 195
9.1简介 196
9.2用LINQ查询数组 196
9.3集合介绍 202
9.4用LINQ查询泛型集合 204
9.5小结 206
9.6 Deitel的LINQ资源中心 206
第10章 类与对象:深入探究 207
10.1简介 208
10.2 Time类案例研究 208
10.3控制成员访问 211
10.4用this引用访问当前对象的成员 211
10.5索引器 213
10.6 Time类案例研究:重载构造函数 215
10.7默认构造函数与无参数构造函数 219
10.8合成 220
10.9内存回收和析构函数 222
10.10静态类成员 223
10.11readonly实例变量 225
10.12软件复用性 227
10.13数据抽象与封装 227
10.14 Time类案例研究:创建类库 228
10.15 internal访问 231
10.16 Class View与Object Browser 232
10.17对象初始化器 233
10.18 Time类案例研究:扩展方法 235
10.19代理 237
10.20 Lambda表达式 239
10.21匿名类型 241
10.22(选读)软件工程案例研究:开始编程ATM系统的类 242
10.23小结 246
第11章 面向对象编程:继承 248
11.1简介 249
11.2基类和派生类 249
11.3 protected成员 250
11.4基类和派生类的关系 251
11.5派生类的构造函数 267
11.6继承和软件工程 271
11.7 object类 272
11.8小结 272
第12章 多态、接口和运算符重载 273
12.1简介 274
12.2多态举例 275
12.3演示多态行为 275
12.4抽象类和方法 277
12.5案例研究:使用多态的工资系统 279
12.6 sealed方法和类 289
12.7案例研究:创建和使用接口 289
12.8运算符重载 296
12.9(选读)软件工程案例研究:在ATM系统中加入继承和多态 298
12.10小结 303
第13章 异常处理 304
13.1简介 305
13.2异常处理概述 305
13.3例子:除数为0不用异常处理 306
13.4例子:处理DivideByZeroException和FormatException异常 308
13.5.NET异常层次 311
13.6 fiinally块 312
13.7 Exception属性 317
13.8用户定义异常类 321
13.9小结 323
第14章 图形用户界面与Windows窗体(1) 324
14.1简介 325
14.2 Windows窗体 325
14.3事件处理 327
14.4控件属性和布局 332
14.5卷标、文本框和按钮 334
14.6组框和面板 336
14.7复选框和单选钮 338
14.8图形框 344
14.9工具提示 346
14.10数字上下控件 347
14.11鼠标事件处理 348
14.12键盘事件处理 350
14.13小结 353
第15章 图形用户界面与Windows窗体(2) 354
15.1简介 355
15.2菜单 355
15.3 MonthCalendar控件 361
15.4 DateTimePicker控件 362
15.5 LinkLabel控件 364
15.6 ListBox控件 367
15.7 CheckedListBox控件 369
15.8 ComboBox控件 371
15.9 TreeView控件 374
15.10 ListView控件 377
15.11 TabControl控件 381
15.12多文档界面(MDI)窗口 384
15.13可视化继承 390
15.14用户定义控件 392
15.15小结 394
第16章GUI与W PF 395
16.1简介 396
16.2视窗演示基础(WPF) 396
16.3 XML基础 397
16.4结构化数据 399
16.5 XML名字空间 403
16.6对声明性GUI编程使用XAML 405
16.7在Visual C # Express中创建WPF程序 406
16.8布局控件 408
16.9事件处理 412
16.10命令和常见程序任务 417
16.11 WPF GUI定制 420
16.12用样式改变控件的外观 421
16.13定制窗口 424
16.14用控件模板定义控件的外观 426
16.15数据驱动GUI与数据绑定 429
16.16小结 433
16.17 Web资源 434
第17章WPF图形和多媒体 435
17.1简介 436
17.2控制字体 436
17.3基本形状 437
17.4多边形和折线 438
17.5画刷 441
17.6变换 445
17.7 WPF定制:电视GUI 446
17.8动画 453
17.9(选读)三维对象和变换 455
17.10小结 459
第18章 字符串、字符和正则表达式 460
18.1简介 461
18.2字符和字符串基础 461
18.3 string构造函数 462
18.4 string索引器、Length属性和CoPyTo方法 463
18.5字符串比较 464
18.6定位字符串中的字符和子串 466
18.7抽取字符串中的子串 468
18.8拼接字符串 468
18.9其他的string方法 469
18.10 StringBuilder类 470
18.11 StringBuilder类的Length和Capacity属性、EnsureCapacity方法以及索引器 471
18.12 StringBuilder类的Append和AppendFormat方法 472
18.13 StringBuilder类的Insert、Renove和Replace方法 474
18.14几种Char方法 475
18.15洗牌和发牌模拟 477
18.16正则表达式处理简介 480
18.17小结 489
第19章 文件和流 490
19.1简介 491
19.2数据层次 491
19.3文件和流 492
19.4 File类和Directory类 493
19.5创建顺序访问文本文件 499
19.6从顺序访问文本文件读取数据 506
19.7案例研究:使用LINQ的信用查询程序 509
19.8序列化 513
19.9用对象序列化创建顺序访问文件 514
19.10从二进制文件读取和去序列化数据 518
19.11小结 521
第20章XML和LINQ to XML 522
20.1简介 523
20.2文档类型定义(DTD) 523
20.3 W3C XML Schema文档 525
20.4可扩展样式表语言和XSL转换 530
20.5 LINQ to XML:文档对象模型(DOM) 536
20.6 LINQ to XML类层次 539
20.7 L NQ to XML:名字空间和文档创建 545
20.8 XSLT和XslCompiledTransform类 547
20.9小结 548
20.10 Web资源 549
第21章 数据库和LINQ to SQL 550
21.1简介 551
21.2关系数据库 551
21.3关系数据库概述:Books数据库 552
21.4 SQL 554
21.5 LINQ to SQL 560
21.6 LINQ to SQL:提取数据库中的信息 561
21.7更复杂的LNQ查询和数据绑定 564
21.8用LINQ取得来自于多个表的数据 567
21.9创建主/细视图程序 570
21.10用LJNQ to SQL编程:地址簿案例研究 573
21.11小结 577
21.12工具和Web资源 578
第22章ASP.NET 3.5和ASP.NET AJAX 579
22.1简介 580
22.2简单HTTP事务 580
22.3多层程序体系结构 583
22.4创建并运行简单的Web窗体例子 583
22.5 Web控件 593
22.6会话跟踪 605
22.7案例研究:在ASP.NET中连接数据库 615
22.8案例研究:安全图书数据库程序 622
22.9 ASP.NET AJAX 638
22.10新的ASP.NET 3.5数据控件 644
22.11小结 644
22.12 Web资源 645
第23章Windows Communication Foundation Wed服务 646
23.1简介 647
23.2 WCF Web服务基础 647
23.3简单对象访问协议 647
23.4表述性状态转移 648
23.5 JavaScript对象标注 648
23.6发布和使用基于SOAP的Web服务 648
23.7发布和使用基于REST的XML Web服务 655
23.8发布和使用基于REST的JSON Web服务 657
23.9 Blackjack Web服务:在基于SOAP的Web服务中使用会话跟踪 660
23.10机票预订Web服务:数据库访问和从ASP.NET调用服务 669
23.11等式生成器:返回用户定义类型 672
23.12小结 680
23.13 Deitel Web服务资源中心 680
第24章Silverlight、 RIA和多媒体 681
24.1简介 682
24.2平台概述 682
24.3 Silverlight的运行时环境和工具安装 683
24.4建立Silverlight WeatherViewer程序 683
24.5动画和FlickrViewer 691
24.6图形和深度缩放 695
24.7音频和视频 702
24.8独立存储 706
24.9 Silverlight演示和Web资源 706
24.10小结 707
第25章 数据结构 709
25.1简介 710
25.2简单类型struct、加框和去框 710
25.3自引用类 710
25.4链表 711
25.5栈 719
25.6队列 722
25.7树 724
25.8小结 733
第26章 泛型 734
26.1简介 735
26.2泛型方法的由来 735
26.3泛型方法的实现 737
26.4类型约束 738
26.5重载泛型方法 740
26.6泛型类 740
26.7小结 747
第27章 集合 748
27.1简介 749
27.2集合概述 749
27.3 Array类和枚举器 750
27.4非泛型集合 753
27.5泛型集合 760
27.6小结 765
附录A运算符优先级表 766
附录B简单类型 768
附录C记数系统 769
附录D ATM案例研究代码 776
附录E UML 2的其他框图类型 794
附录F ASCⅡ字符集 795
附录G Unicode 796
附录H使用Visual C # 2008调试器 802
索引 815