Visual C#大学教程(第六版)
作者: (美)Paul Deitel,(美)Harvey Deitel著
出版时间:2019年版
内容简介
本书是一本C#编程方面的优秀教材。在第五版的基础上,全书根据*新的C# 6规范进行了更新。除了讲解面向对象编程的类与对象、方法、控制语句、数组、继承、多态、异常处理、GUI、字符串和字符、文件和流、搜索与排序、泛型、集合、数据库等基本概念,还重点介绍了C# 6中新包含的功能,比如字符串插值、索引初始值设定项、null条件运算符等,并且专门讲解了函数式编程的相关特点。
目录
目 录
第1章 计算机、Internet和Visual C#简介\t1
1.1 简介\t1
1.2 在行业和研究领域的计算机与Internet\t2
1.3 硬件和软件\t3
1.4 数据层次\t4
1.5 机器语言、汇编语言和高级语言\t6
1.6 对象技术\t7
1.7 Internet和WWW\t9
1.8 C#\t10
1.9 Microsoft的 .NET\t13
1.10 Windows操作系统\t14
1.11 Visual Studio集成开发环境\t15
1.12 在Visual Studio Community中测试Painter程序\t15
自测题\t17
自测题答案\t18
练习题\t19
挑战题\t20
与挑战题相关的资源\t21
第2章 Visual Studio和可视化编程简介\t22
2.1 简介\t22
2.2 Visual Studio Community 2015 IDE概述\t22
2.3 菜单栏和工具栏\t26
2.4 Visual Studio IDE概览\t27
2.5 Help菜单与上下文相关帮助\t30
2.6 可视化编程:创建显示文本和图像的简单程序\t30
2.7 小结\t36
2.8 Web资源\t36
摘要\t37
术语表\t38
自测题\t38
自测题答案\t39
练习题\t39
第3章 C#编程入门\t43
3.1 简介\t44
3.2 一个简单程序:显示一行文本\t44
3.3 在VIsual Studio中创建简单的程序\t48
3.4 修改C#程序\t52
3.5 字符串插值\t54
3.6 另一个C#程序:整数相加\t54
3.7 内存概念\t57
3.8 算术运算\t58
3.9 判断:相等性运算符与关系运算符\t60
3.10 小结\t64
摘要\t64
术语表\t66
自测题\t67
自测题答案\t68
练习题\t70
挑战题\t73
第4章 类、对象、方法和string简介\t74
4.1 简介\t75
4.2 测试一个Account类\t75
4.3 包含实例变量、Set方法和Get方法的Account类\t77
4.4 创建、编译和运行带两个类的Visual C#项目\t81
4.5 包含Set方法和Get方法的软件工程\t82
4.6 具有属性而不是Set方法和Get方法的Account类\t82
4.7 自动实现的属性\t85
4.8 Account类:用构造函数初始化对象\t86
4.9 具有余额的Account类以及货币值处理\t88
4.10 小结\t92
摘要\t93
术语表\t96
自测题\t97
自测题答案\t97
练习题\t98
挑战题\t99
第5章 算法设计与控制语句(1)\t100
5.1 简介\t101
5.2 算法\t101
5.3 伪代码\t101
5.4 控制结构\t102
5.5 if单选择语句\t103
5.6 if…else双选择语句\t104
5.7 Student类:嵌套if…else语句\t107
5.8 while循环语句\t109
5.9 形成算法:计数器控制循环\t110
5.10 形成算法:标记控制循环\t113
5.11 形成算法:嵌套控制语句\t118
5.12 复合赋值运算符\t121
5.13 增量运算符和减量运算符\t122
5.14 简单类型\t124
5.15 小结\t124
摘要\t125
术语表\t127
自测题\t128
自测题答案\t129
练习题\t130
挑战题\t135
第6章 控制语句(2)\t137
6.1 简介\t138
6.2 计数器控制循环的实质\t138
6.3 for循环语句\t139
6.4 使用for语句的示例\t141
6.5 程序:对偶数求和\t142
6.6 程序:复利计算\t143
6.7 do…while循环语句\t145
6.8 switch多选择语句\t146
6.9 AutoPolicy类案例分析:switch语句中的字符串\t150
6.10 break和continue语句\t152
6.11 逻辑运算符\t153
6.12 结构化编程小结\t158
6.13 小结\t161
摘要\t161
术语表\t163
自测题\t164
自测题答案\t165
练习题\t166
挑战题\t169
第7章 方法:深入探究\t170
7.1 简介\t171
7.2 C#的代码包装\t171
7.3 静态方法、静态变量和Math类\t172
7.4 声明多参数方法\t174
7.5 关于方法使用的说明\t177
7.6 实参提升与强制转换\t178
7.7 .NET Framework类库\t179
7.8 案例分析:随机数生成方法\t181
7.9 案例分析:机会游戏(引入枚举)\t184
7.10 声明的作用域\t188
7.11 方法调用栈与活动记录\t190
7.12 方法重载\t193
7.13 可选参数\t194
7.14 命名参数\t195
7.15 C# 6的表达式方法和属性\t196
7.16 递归\t196
7.17 值类型与引用类型\t199
7.18 按值与按引用传递实参\t199
7.19 小结\t202
摘要\t202
术语表\t207
自测题\t207
自测题答案\t209
练习题\t210
挑战题\t215
第8章 数组以及异常处理简介\t216
8.1 简介\t217
8.2 数组\t217
8.3 声明和创建数组\t218
8.4 数组使用示例\t219
8.5 用数组分析汇总结果以及异常处理\t226
8.6 案例分析:模拟洗牌和发牌\t228
8.7 将数组和数组元素传入方法\t232
8.8 案例分析:GradeBook类用数组保存成绩\t233
8.9 多维数组\t237
8.10 案例分析:使用矩形数组的GradeBook类\t241
8.11 变长实参表\t245
8.12 使用命令行实参\t246
8.13 (选修)按值与按引用传递数组\t248
8.14 小结\t251
摘要\t251
术语表\t254
自测题\t254
自测题答案\t255
练习题\t256
拓展内容:建立自己的计算机\t262
挑战题\t267
第9章 LINQ和List集合简介\t268
9.1 简介\t268
9.2 用LINQ查询int数组\t269
9.3 用LINQ查询Employee对象数组\t272
9.4 集合\t276
9.5 用LINQ查询泛型List集合\t279
9.6 小结\t281
9.7 Deitel的LINQ资源中心\t282
摘要\t282
术语表\t284
自测题\t284
自测题答案\t284
练习题\t284
第10章 类与对象:深入探究\t286
10.1 简介\t286
10.2 Time类案例分析以及抛出异常\t287
10.3 控制对成员的访问\t290
10.4 用this引用访问当前对象的成员\t290
10.5 Time类案例分析:重载构造函数\t292
10.6 默认构造函数和无参数构造函数\t296
10.7 组合\t297
10.8 垃圾回收与析构函数\t299
10.9 静态类成员\t300
10.10 只读实例变量\t302
10.11 Class View与Object Browser\t303
10.12 对象初始值设定项\t304
10.13 运算符重载以及struct简介\t305
10.14 Time类案例分析:扩展方法\t308
10.15 小结\t310
摘要\t310
术语表\t313
自测题\t313
自测题答案\t313
练习题\t314
第11章 面向对象编程:继承\t316
11.1 简介\t316
11.2 基类与派生类\t317
11.3 protected成员\t318
11.4 基类与派生类的关系\t319
11.5 派生类的构造函数\t333
11.6 继承与软件工程\t333
11.7 object类\t334
11.8 小结\t334
摘要\t335
术语表\t336
自测题\t336
自测题答案\t337
练习题\t337
第12章 面向对象编程:多态与接口\t339
12.1 简介\t339
12.2 多态示例\t340
12.3 演示多态行为\t341
12.4 抽象类和抽象方法\t343
12.5 案例分析:使用多态的工资系统\t345
12.6 sealed方法和类\t355
12.7 案例分析:创建和使用接口\t356
12.8 小结\t362
摘要\t362
术语表\t364
自测题\t364
自测题答案\t364
练习题\t365
挑战题\t366
第13章 异常处理:深入探究\t367
13.1 简介\t368
13.2 示例:除数为0不用异常处理\t368
13.3 示例:处理DivideByZeroException和FormatException异常\t370
13.4 .NET的Exception层次\t374
13.5 finally语句块\t375
13.6 using语句\t380
13.7 Exception属性\t381
13.8 用户定义异常类\t384
13.9 检验空引用以及C# 6的“?.”运算符\t387
13.10 异常过滤器与C# 6的when子句\t389
13.11 小结\t389
摘要\t389
术语表\t392
自测题\t392
自测题答案\t393
练习题\t393
第14章 图形用户界面与Windows窗体(1)\t395
14.1 简介\t395
14.2 Windows窗体\t396
14.3 事件处理\t398
14.4 控件的属性和布局\t403
14.5 标签、文本框和按钮\t406
14.6 组框和面板\t408
14.7 复选框和单选钮\t410
14.8 图形框\t416
14.9 工具提示\t418
14.10 数字上下控件\t419
14.11 鼠标事件处理\t420
14.12 键事件处理\t422
14.13 小结\t424
摘要\t424
术语表\t428
自测题\t429
自测题答案\t429
练习题\t430
挑战题\t431
第15章 图形用户界面与Windows窗体(2)\t433
15.1 简介\t433
15.2 菜单\t434
15.3 MonthCalendar控件\t440
15.4 DateTimePicker控件\t441
15.5 LinkLabel控件\t443
15.6 ListBox控件\t446
15.7 CheckedListBox控件\t449
15.8 ComboBox控件\t450
15.9 TreeView控件\t453
15.10 ListView控件\t457
15.11 TabControl控件\t462
15.12 多文档界面(MDI)窗口\t465
15.13 可视化继承\t470
15.14 用户定义的控件\t474
15.15 小结\t476
摘要\t476
术语表\t479
自测题\t480
自测题答案\t480
练习题\t481
第16章 字符串和字符:深入探究\t483
16.1 简介\t483
16.2 字符和字符串基础\t484
16.3 string构造函数\t484
16.4 string索引器、Length属性和CopyTo方法\t485
16.5 字符串比较\t487
16.6 查找字符串中的字符和子串\t489
16.7 抽取字符串中的子串\t491
16.8 拼接字符串\t492
16.9 其他的string方法\t492
16.10 StringBuilder类\t493
16.11 StringBuilder类的Length属性、Capacity属性、EnsureCapacity方法 以及索引器\t494
16.12 StringBuilder类的Append和AppendFormat方法\t495
16.13 StringBuilder类的Insert、Remove和Replace方法\t497
16.14 几个Char方法\t499
16.15 (在线)正则表达式处理简介\t501
16.16 小结\t501
摘要\t501
术语表\t503
自测题\t503
自测题答案\t504
练习题\t504
挑战题\t504
第17章 文件和流\t506
17.1 简介\t506
17.2 文件和流\t506
17.3 创建顺序访问文本文件\t507
17.4 从顺序访问文本文件读取数据\t513
17.5 案例分析:信用查询程序\t516
17.6 序列化\t520
17.7 用对象序列化创建顺序访问文件\t521
17.8 从二进制文件读取和去序列化数据\t524
17.9 File类和Directory类\t525
17.10 小结\t531
摘要\t532
术语表\t533
自测题\t534
自测题答案\t534
练习题\t535
挑战题\t536
第18章 搜索与排序\t537
18.1 简介\t537
18.2 搜索算法\t538
18.3 排序算法\t544
18.4 搜索算法和排序算法的效率\t553
18.5 小结\t554
摘要\t554
术语表\t556
自测题\t556
自测题答案\t556
练习题\t556
第19章 定制链式数据结构\t559
19.1 简介\t559
19.2 简单类型struct以及装箱和拆箱\t559
19.3 自引用类\t560
19.4 链表\t561
19.5 栈\t569
19.6 队列\t572
19.7 树\t575
19.8 小结\t584
摘要\t584
术语表\t586
自测题\t586
自测题答案\t587
练习题\t587
拓展内容:建立自己的编译器\t589
第20章 泛型\t590
20.1 简介\t590
20.2 泛型方法的由来\t591
20.3 泛型方法的实现\t592
20.4 类型约束\t594
20.5 重载泛型方法\t597
20.6 泛型类\t597
20.7 小结\t604
摘要\t604
术语表\t606
自测题\t606
自测题答案\t607
练习题\t607
第21章 泛型集合以及LINQ/PLINQ函数式编程\t609
21.1 简介\t610
21.2 集合概述\t611
21.3 Array类和枚举器\t612
21.4 字典集合\t615
21.5 泛型LinkedList集合\t619
21.6 C# 6的null条件运算符“?[ ]”\t623
21.7 C# 6的字典和集合初始值设定项\t623
21.8 代理\t624
21.9 lambda表达式\t626
21.10 函数式编程简介\t628
21.11 用LINQ方法调用语法和lambda表达式进行函数式编程\t630
21.12 PLINQ:提升LINQ to Objects在多核处理器上的性能\t634
21.13 (选修)泛型类型的协变和逆变\t637
21.14 小结\t638
摘要\t639
术语表\t643
自测题\t644
自测题答案\t645
练习题\t645
函数式编程练习\t646
第22章 数据库和LINQ\t648
22.1 简介\t648
22.2 关系数据库\t649
22.3 Books数据库\t650
22.4 LINQ to Entities与ADO.NET实体框架\t653
22.5 用LINQ查询数据库\t654
22.6 动态绑定查询结果\t663
22.7 用LINQ取得来自多个表的数据\t667
22.8 创建主/细视图程序\t671
22.9 地址簿案例分析\t673
22.10 工具和Web资源\t678
22.11 小结\t678
摘要\t678
术语表\t681
自测题\t682
自测题答案\t682
练习题\t683
第23章 async、await与异步编程\t684
23.1 简介\t684
23.2 async和await概述\t686
23.3 在GUI程序中执行异步任务\t686
23.4 同步执行两个计算密集型任务\t689
23.5 异步执行两个计算密集型任务\t691
23.6 使用HttpClient类异步调用Flickr Web服务\t694
23.7 显示异步任务的进度\t700
23.8 小结\t703
摘要\t703
术语表\t706
自测题\t707
自测题答案\t707
练习题\t707
附录A 运算符优先级表\t709
附录B 简单类型\t711
附录C ASCII字符集\t712
索引\t715