《C#入门经典(第4版)》通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。《C#入门经典(第4版)》全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。
基本介绍
- 书名C# 入门经典
- 作者karli Watson Christian Nagel
- 译者齐立波 黄静
- ISBN9787302185871
- 页数1010页
- 出版社清华大学出版社
- 出版时间2008年12月1日
- 装帧平装
- 开本16
- 正文语种简体中文
内容简介
学习了新的编程技巧后,《C#入门经典(第4版)》介绍了如何高效地部署应用程式和服务,论述了许多高级技术,如图形化编程。,还探讨了如何使用Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studio 2008的功能。所有这些内容都已更新,以反映.NET Framework 3.5和Visual Studio 2008的变化。各章的样例代码和示例还可以用于创建强大且安全的应用程式。
《C#入门经典(第4版)》语言简练,条理清晰,涵盖了Visual C# 2008和.NET Framework 3.5的全部内容。通过学习《C#入门经典(第4版)》,您将能够快速入门,轻鬆开发出自己的应用程式。
《C#入门经典(第4版)》主要内容
C#的所有基础知识和面向对象编程
通过C#语言编写和部署Windows应用程式
开发定製的Web应用程式和利用Web服务的技巧
数据访问技术,包括使用LINQ处理XML数据
通过单击按钮将应用程式发布到Web上
使用Windows Presentation Foundation、Windows Workflow Foundation、Windows Communication Foundation、GDI+和联网等其他技术
《C#入门经典(第4版)》读者对象
《C#入门经典(第4版)》适合于想学习使用.NET Framework编写C#程式的读者,也适合于已了解.NET,又想学习.NET 3.5或Visual Studio 2008最新功能的读者。
编辑推荐
《C#入门经典(第4版)》是一本成就无数C#程式设计师的经典名着,厚而不“重”,可帮助您轻鬆掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程式设计师首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程式设计师》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET 3.5 继续完善原有内容,全面介绍.NET的最新技术和特性。
Wrox畅销书!C#经典名着!2005年最杈威的十大IT图书!2 006年最受读者喜爱的十大技术开发类图书!2008年全国高校出版社优秀销书一等奖!2006~2008年最畅销的 C#入门教程!
作者简介
作者(美国)karli Watson (美国)Christian Nagel 译者齐立波 黄静
齐立波,计算机专业硕士、大学讲师,一直从事C/C++和C#程式设计方面的教学与科研工作,曾参与编写多本计算机教材,并为一些软体公司翻译过大量的技术文档。
黄静,计算机专业博士,在程式设计、软体工程和网路安全等方面有着多年的研究和实战经验,曾为NET技术在国内的推广作出了重要贡献,翻译和发表了多篇有关.NET的技术文档和文章。
目录
第Ⅰ部分 C# 语 言
第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 2008 8
1.3.1 Visual Studio 2008 Express 产品 9
1.3.2 解决方案 9
1.4 小结 9
第2章 编写C#程式 10
2.1 开发环境 10
2.1.1 Visual Studio 2008 11
2.1.2 Visual C# 2008 ExpressEdition 13
2.2 控制台应用程式 13
2.2.1 Solution Explorer 16
2.2.2 Properties视窗 17
2.2.3 Error List视窗 17
2.3 Windows Forms应用程式 18
2.4 小结 22
第3章 变数和表达式 23
3.1 C#的基本语法 23
3.2 C#控制台应用程式的基本结构 25
3.3 变数 27
3.3.1 简单类型 27
3.3.2 变数的命名 31
3.3.3 字面值 32
3.3.4 变数的声明和赋值 33
3.4 表达式 34
3.4.1 数学运算符 34
3.4.2 赋值运算符 38
3.4.3 运算符的优先权 39
3.4.4 名称空间 39
3.5 小结 42
3.6 练习 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 小结 70
4.6 练习 71
第5章 变数的更多内容 72
5.1 类型转换 72
5.1.1 隐式转换 72
5.1.2 显式转换 74
5.1.3 使用Convert命令进行 显式转换 76
5.2 複杂的变数类型 79
5.2.1 枚举 79
5.2.2 结构 83
5.2.3 数组 86
5.3 字元串的处理 91
5.4 小结 95
5.5 练习 96
第6章 函式 97
6.1 定义和使用函式 98
6.1.1 返回值 99
6.1.2 参数 101
6.2 变数的作用域 107
6.2.1 其他结构中变数的作用域 110
6.2.2 参数和返回值与全局数据 111
6.3 Main()函式 113
6.4 结构函式 114
6.5 函式的重载 115
6.6 委託 117
6.7 小结 119
6.8 练习 120
第7章 调试和错误处理 121
7.1 VS和VCE中的调试 121
7.1.1 非中断(正常)模式下的调试 122
7.1.2 中断模式下的调试 131
7.2 错误处理 139
7.2.1 try...catch...finally 140
7.2.2 列出和配置异常 144
7.2.3 异常处理的注意事项 145
7.3 小结 146
7.4 练习 146
第8章 面向对象编程简介 147
8.1 什幺是面向对象编程 147
8.1.1 什幺是对象 148
8.1.2 所有的东西都是对象 151
8.1.3 对象的生命周期 151
8.1.4 静态和实例类成员 152
8.2 OOP技术 153
8.2.1 接口 153
8.2.2 继承 155
8.2.3 多态性 156
8.2.4 对象之间的关係 157
8.2.5 运算符重载 159
8.2.6 事件 159
8.2.7 引用类型和值类型 160
8.3 Windows应用程式中的OOP 160
8.4 小结 162
8.5 练习 163
第9章 定义类 164
9.1 C#中的类定义 164
9.2 System.Object 169
9.3 构造函式和析构函式 170
9.4 VS和VCE中的OOP工具 174
9.4.1 Class View视窗 174
9.4.2 对象浏览器 176
9.4.3 添加类 177
9.4.4 类图 177
9.5 类库项目 179
9.6 接口和抽象类 182
9.7 结构类型 184
9.8 小结 186
9.9 练习 186
第10章 定义类成员 187
10.1 成员定义 187
10.1.1 定义栏位 187
10.1.2 定义方法 188
10.1.3 定义属性 189
10.1.4 在类图中添加成员 194
10.1.5 重製成员 196
10.1.6 自动属性 197
10.2 类成员的其他议题 197
10.2.1 隐藏基类方法 198
10.2.2 调用重写或隐藏的基类方法 199
10.2.3 嵌套的类型定义 200
10.3 接口的实现 201
10.4 部分类定义 204
10.5 部分方法定义 206
10.6 示例应用程式 207
10.6.1 规划应用程式 207
10.6.2 编写类库 208
10.6.3 类库的客户应用程式 214
10.7 小结 215
10.8 练习 216
第11章 集合、比较和转换 217
11.1 集合 217
11.1.1 使用集合 218
11.1.2 定义集合 224
11.1.3 索引符 225
11.1.4 给CardLib添加Cards集合 227
11.1.5 关键字值集合和IDictionary 229
11.1.6 叠代器 231
11.1.7 深度複製 236
11.1.8 给CardLib添加深度複製 238
11.2 比较 239
11.2.1 类型比较 240
11.2.2 值比较 244
11.3 转换 259
11.3.1 重载转换运算符 259
11.3.2 as运算符 260
11.4 小结 261
11.5 练习 262
第12章 泛型 263
12.1 泛型的概念 263
12.2 使用泛型 264
12.2.1 可空类型 264
12.2.2 System.Collections.Generic 名称空间 271
12.3 定义泛型 279
12.3.1 定义泛型类 280
12.3.2 定义泛型接口 291
12.3.3 定义泛型方法 291
12.3.4 定义泛型委託 293
12.4 小结 293
12.5 练习 293
第13章 其他OOP技术 295
13.1 ::运算符和全局名称空间
13.2 定製异常 296
13.2.1 异常基类 297
13.2.2 给CardLib添加定製异常 297
13.3 事件 298
13.3.1 什幺是事件 298
13.3.2 使用事件 300
13.3.3 定义事件 302
13.4 扩展和使用CardLib 309
13.5 小结 317
13.6 练习 317
第14章 C# 3.0语言的改进 318
14.1 初始化器 318
14.1.1 对象初始化器 319
14.1.2 集合初始化器 320
14.2 类型推断 323
14.3 匿名类型 325
14.4 扩展方法 328
14.5 ?表达式 333
14.5.1 複习匿名方法 333
14.5.2 把?表达式用于匿名方法 334
14.5.3 ?表达式的参数 337
14.5.4 ?表达式的语句体 337
14.5.5 ?表达式用作委託和表达式树 338
14.5.6 ?表达式和集合 339
14.6 小结 342
14.7 练习 342
第Ⅱ部分 Windows 编 程
第15章 Windows编程基础 347
15.1 控制项 347
15.1.1 属性 348
15.1.2 控制项的定位、停靠和对齐 349
15.1.3 事件 350
15.2 Button控制项 352
15.2.1 Button控制项的属性 352
15.2.2 Button控制项的事件 353
15.3 Label和LinkLabel控制项 354
15.4 TextBox控制项 355
15.4.1 TextBox控制项的属性 355
15.4.2 TextBox控制项的事件 356
15.5 RadioButton和CheckBox控制项 363
15.5.1 RadioButton控制项的属性 364
15.5.2 RadioButton控制项的事件 364
15.5.3 CheckBox控制项的属性 364
15.5.4 CheckBox控制项的事件 364
15.5.5 GroupBox控制项 365
15.6 RichTextBox控制项 368
15.6.1 RichTextBox控制项的属性 368
15.6.2 RichTextBox控制项的事件 369
15.7 ListBox和CheckedListBox控制项 374
15.7.1 ListBox控制项的属性 375
15.7.2 ListBox控制项的方法 376
15.7.3 ListBox控制项的事件 376
15.8 ListView控制项 378
15.8.1 ListView控制项的属性 378
15.8.2 ListView控制项的方法 380
15.8.3 ListView控制项的事件 381
15.8.4 ListViewItem 381
15.8.5 ColumnHeader 381
15.8.6 ImageList控制项 381
15.9 TabControl控制项 388
15.9.1 TabControl控制项的属性 389
15.9.2 使用TabControl控制项 389
15.10 小结 392
15.11 练习 392
第16章 Windows Forms的高级功能 393
16.1 选单和工具列 393
16.1.1 两个实质一样的控制项 393
16.1.2 使用MenuStrip控制项 394
16.1.3 手工创建选单 394
16.1.4 ToolStripMenuItem控制项的其他属性 397
16.1.5 给选单添加功能 397
16.2 工具列 399
16.2.1 ToolStrip控制项的属性 399
16.2.2 ToolStrip的项 400
16.2.3 StatusStrip控制项 405
16.2.4 StatusStripStatusLabel的属性 405
16.3 SDI和MDI应用程式 407
16.4 创建控制项 415
16.4.1 LabelTextbox控制项 417
16.4.2 调试用户控制项 420
16.4.3 扩展LabelTextbox控制项 421
16.5 小结 424
16.6 练习 424
第17章 使用通用对话框 425
17.1 通用对话框 425
17.2 如何使用对话框 426
17.3 档案对话框 427
17.3.1 OpenFileDialog 427
17.3.2 SaveFileDialog 438
17.4 列印 442
17.4.1 列印结构 442
17.4.2 列印多个页面 447
17.4.3 PageSetupDialog 449
17.4.4 PrintDialog 451
17.5 列印预览 455
17.5.1 PrintPreviewDialog 455
17.5.2 PrintPreviewControl 456
17.6 FontDialog和ColorDialog 457
17.6.1 FontDialog 457
17.6.2 ColorDialog 459
17.6.3 FolderBrowserDialog 460
17.7 小结 461
17.8 练习 461
第18章 部署Windows应用程式 463
18.1 部署概述 463
18.2 ClickOnce部署 464
18.3 Visual Studio安装和部署项目类型 473
18.4 Microsoft Windows安装程式结构 474
18.4.1 Windows Installer术语 474
18.4.2 Windows Installer的优点 476
18.5 为SimpleEditor创建安装软体包 476
18.5.1 规划安装内容 476
18.5.2 创建项目 477
18.5.3 项目属性 478
18.5.4 安装编辑器 480
18.5.5 File System编辑器 481
18.5.6 File Types编辑器 483
18.5.7 Launch Condition编辑器 485
18.5.8 User Interface编辑器 485
18.6 构建项目 488
18.7 安装 489
18.7.1 Welcome 489
18.7.2 Read Me 489
18.7.3 License Agreement 490
18.7.4 Optional Files 490
18.7.5 选择安装资料夹 491
18.7.6 确认安装 492
18.7.7 进度 492
18.7.8 结束安装 493
18.7.9 运行应用程式 493
18.7.10 卸载 493
18.8 小结 493
18.9 练习 494
第Ⅲ部分 Web 编 程
第19章 Web编程基础 497
19.1 概述 497
19.2 ASP-NET运行库 498
19.3 创建简单的Web页面 498
19.4 伺服器控制项 504
19.5 事件处理程式 505
19.6 输入的有效性验证 509
19.7 状态管理 512
19.7.1 客户端的状态管理 513
19.7.2 伺服器端的状态管理 515
19.8 身份验证和授权 517
19.8.1 身份验证的配置 518
19.8.2 使用安全控制项 522
19.9 读写SQL Server资料库 524
19.10 小结 530
19.11 练习 531
第20章 Web高级编程 532
20.1 母版页 532
20.2 站点导航 537
20.3 用户控制项 539
20.4 个性化配置 541
20.4.1 个性化配置组 543
20.4.2 组件的个性化配置 543
20.4.3 定製数据类型中的个性化配置 543
20.4.4匿名用户的个性化配置 544
20.5 Web Parts 545
20.5.1 WebPartManager控制项 546
20.5.2 WebPartZone控制项 546
20.5.3 EditorZone控制项 548
20.5.4 CatalogZone控制项 550
20.5.5 ConnectionsZone控制项 551
20.6 JavaScript 554
20.6.1 Script元素 555
20.6.2 变数的声明 555
20.6.3 定义函式 555
20.6.4 语句 556
20.6.5 对象 556
20.7 小结 560
20.8 练习 560
第21章 Web服务 561
21.1 Web服务推出之前 561
21.1.1 远程过程调用(RPC) 562
21.1.2 SOAP 563
21.2 使用Web服务的场合 563
21.2.1 宾馆旅行社代理应用程式 564
21.2.2 图书发布应用程式 564
21.2.3 客户应用程式的类型 564
21.2.4 应用程式的体系结构 564
21.3 Web服务的体系结构 565
21.3.1 可以调用的方法 565
21.3.2 调用方法 566
21.3.3 SOAP和防火墙 567
21.3.4 WS-I基本个性化配置 568
21.4 Web服务和.NET Framework 568
21.4.1 创建Web服务 568
21.4.2 客户程式 570
21.5 创建简单的ASP-NET Web服务 571
21.6 测试Web服务 572
21.7 执行Windows客户程式 574
21.8 异步调用服务 577
21.9 执行ASP-NET客户程式 580
21.10 传送数据 581
21.11 小结 584
21.12 练习 584
第22章 Ajax编程 586
22.1 Ajax概述 586
22.2 UpdatePanel控制项 587
22.3 Timer控制项 591
22.4 UpdateProgress控制项 592
22.5 Web服务 594
22.6 扩展控制项 598
22.7 小结 600
22.8 练习 600
第23章 部署Web应用程式 601
23.1 Internet Information Services 601
23.2 IIS配置 602
23.3 複製Web站点 604
23.4 发布Web站点 606
23.5 Windows安装程式 607
23.5.1 创建安装程式 607
23.5.2 安装Web 应用程式 609
23.6 小结 610
23.7 练习 610
第Ⅳ部分 数 据 访 问
第24章 档案系统数据 613
24.1 流 613
24.2 用于输入和输出的类 614
24.2.1 File类和Directory类 615
24.2.2 FileInfo类 616
24.2.3 DirectoryInfo类 617
24.2.4 路径名和相对路径 618
24.2.5 FileStream对象 618
24.2.6 StreamWriter对象 624
24.2.7 StreamReader对象 626
24.2.8 读写压缩档案 632
24.3 序列化对象 635
24.4 监控档案结构 639
24.5 小结 645
24.6 练习 646
第25章 XML 647
25.1 XML文档 647
25.1.1 XML元素 647
25.1.2 属性 648
25.1.3 XML声明 649
25.1.4 XML文档的结构 649
25.1.5 XML名称空间 650
25.1.6 格式良好并有效的XML 651
25.1.7 验证XML文档 651
25.2 在应用程式中使用XML 654
25.2.1 XML文档对象模型 655
25.2.2 选择节点 663
25.3 小结 670
25.4 练习 671
第26章 LINQ简介 672
26.1 LINQ的变体 673
26.2 第一个LINQ查询 673
26.2.1 用var关键字声明结果变数 675
26.2.2 指定数据源from子句 675
26.2.3 指定条件where子句 675
26.2.4 指定元素select子句 676
26.2.5 完成使用foreach循环 676
26.2.6 延迟执行的查询 676
26.3使用LINQ方法语法和?表达式 676
26.3.1 LINQ扩展方法 676
26.3.2 查询语法和方法语法 677
26.3.3 ?表达式 677
26.4 排序查询结果 679
26.5 orderby子句 680
26.6 用方法语法排序 681
26.7 查询大型数据集 682
26.8 合计运算符 685
26.9 查询複杂的对象 688
26.10 投射在查询中创建新对象 691
26.11 投射方法语法 693
26.12 单值选择查询 693
26.13 Any和All 694
26.14 多级排序 696
26.15 多级排序方法语法ThenBy 698
26.16 组合查询 698
26.17 Take和Skip 700
26.18 First和FirstOrDefault 702
26.19 集运算符 703
26.20 Join查询 706
26.21 资源和进一步阅读 707
26.22 小结 707
26.23 练习 707
第27章 LINQ to SQL 709
27.1 对象相关映射 709
27.2 安装SQL Server和Northwind示例数据 710
27.2.1 安装SQL Server Express2005 710
27.2.2 安装Northwind示例资料库 711
27.3 第一个LINQ to SQL查询 712
27.4 浏览LINQ to SQL关係 717
27.5 进一步探讨LINQ to SQL 720
27.6 LINQ to SQL中的组合、排序和其他高级查询 723
27.7 显示生成的SQL 725
27.8 用LINQ to SQL绑定数据 729
27.9 用LINQ to SQL更新绑定数据 733
27.10 小结 734
27.11 练习 735
第28章 ADO-NET和LINQ over DataSet 736
28.1 ADO-NET概述 736
28.1.1 ADO-NET名称的来源 737
28.1.2 ADO-NET的设计目标 738
28.2 ADO-NET类和对象概述 739
28.2.1 提供者对象 739
28.2.2 用户对象 740
28.2.3 使用System.Data名称空间 741
28.3 用DataReader读取数据 742
28.4 用DataSet读取数据 749
28.4.1 用数据填充DataSet 749
28.4.2 访问DataSet中的表、行和列 749
28.5 更新资料库 752
28.5.1 给资料库添加行 755
28.5.2 删除行 761
28.6 在DataSet中访问多个表 762
28.6.1 ADO-NET中的关係 762
28.6.2 用关係导航 763
28.7 XML和ADO-NET 770
28.8 ADO-NET中的SQL支持 773
28.8.1 DataAdapter对象中的 SQL命令 773
28.8.2 直接执行SQL命令 776
28.8.3 调用SQL存储过程 778
28.9 使用LINQ over DataSet和ADO-NET 780
28.10 小结 784
28.11 练习 784
第29章 LINQ to XML 785
29.1 LINQ to XML函式构造方法 785
29.2 保存和载入XML文档 789
29.2.1 从字元串中载入XML 791
29.2.2 已保存的XML文档内容 792
29.3 处理XML片段 792
29.4 通过LINQ to XML生成 XML 794
29.5 查询XML文档 798
29.6 小结 804
29.7 练习 804
第Ⅴ部分 其 他 技 术
第30章 属性 809
30.1 什幺是属性 809
30.2 反射 812
30.3 内置属性 815
30.3.1 System.Diagnostics.ConditionalAttribute 815
30.3.2 System.Obsolete Attribute 817
30.3.3 System.Serializable
Attribute 818
30.3.4 System.Reflection.AssemblyDelaySignAttribute 821
30.4 定製属性 824
30.4.1 BugFixAttribute 824
30.4.2 System.AttributeUsageAttribute 826
30.5 小结 830
第31章 XML文档说明 831
31.1 添加XML文档说明 831
31.1.1 XML文档说明的注释 833
31.1.2 使用类图添加XML文档说明 839
31.1.3 生成XML文档说明档案 842
31.1.4 带有XML文档说明的应用程式示例 844
31.2 使用XML文档说明 846
31.2.1 编程处理XML文档说明 846
31.2.2 用XSLT格式化XML文档说明 848
31.2.3 文档说明工具 849
31.3 小结 850
31.4 练习 851
第32章 网路 852
32.1 联网概述 852
32.1.1 名称的解析 855
32.1.2 统一资源标识符 856
32.1.3 TCP和UDP 857
32.1.4 套用协定 857
32.2 网路编程选项 859
32.3 WebClient 859
32.4 WebRequest和WebResponse 861
32.5 TcpListener和TcpClient 868
32.6 小结 876
32.7 练习 876
第33章 GDI+简介 877
33.1 图形绘製概述 877
33.1.1 Graphics类 878
33.1.2 对象的删除 878
33.1.3 坐标系统 879
33.1.4 颜色 884
33.2 使用Pen类绘製线条 885
33.3 使用Brush类绘制图形 887
33.4 使用Font 类绘製文本 890
33.5 使用图像进行绘製 893
33.5.1 使用纹理画笔绘图 895
33.5.2 使用钢笔绘制图像 897
33.5.3 双倍缓冲 898
33.6 GDI+的高级功能 900
33.6.1 剪下 900
33.6.2 System.Drawing.Drawing2D 901
33.6.3 System.Drawing.Imaging 901
33.7 小结 901
33.8 练习 902
第 34 章 Windows Presentation Foundation 903
34.1 WPF的概念 904
34.1.1 WPF给设计人员带来的好处 904
34.1.2 WPF给C#开发人员带来的好处 906
34.2 基本WPF应用程式的组成 906
34.3 WPF基础 916
34.3.1 XAML语法 917
34.3.2 桌面和Web应用程式 919
34.3.3 Application对象 920
34.3.4 控制项基 920
34.3.5 控制项的布局 928
34.3.6 控制项的样式 936
34.3.7 触发器 941
34.3.8 动画 942
34.3.9 静态和动态资源 944
34.4 用WPF编程 949
34.4.1 WPF用户控制项 950
34.4.2 实现依赖属性 950
34.5 小结 959
34.6 练习 960
第35 章 Windows Communication Foundation 961
35.1 WCF是什幺 961
35.2 WCF概念 962
35.2.1 WCF通信协定 962
35.2.2 地址、端点和绑定 963
35.2.3 契约 964
35.2.4 讯息模式 965
35.2.5 行为 965
35.2.6 主机 965
35.3 WCF编程 966
35.3.1 定义WCF服务契约 973
35.3.2 自存储的WCF服务 979
35.4 小结 985
35.5 练习 986
第36章 Windows Workflow Foundation 987
36.1 活动 990
36.1.1 DelayActivity 990
36.1.2 SuspendActivity 991
36.1.3 WhileActivity 992
36.1.4 SequenceActivity 994
36.1.5 定製活动 997
36.2 工作流运行库 1002
36.3 数据绑 1007
36.4 小结 1010