华信教育资源网
Visual C#大学教程(第六版)
丛   书   名: 国外计算机科学教材系列
作   译   者:洛基山,张君施 等 出 版 日 期:2019-07-01
出   版   社:电子工业出版社 维   护   人:冯小贝 
书   代   号:G0369290 I S B N:9787121369292

图书简介:

本书是一本C#编程方面的优秀教材。在第五版的基础上,全书根据最新的C# 6规范进行了更新。除了讲解面向对象编程的类与对象、方法、控制语句、数组、继承、多态、异常处理、GUI、字符串和字符、文件和流、搜索与排序、泛型、集合、数据库等基本概念,还重点介绍了C# 6中新包含的功能,比如字符串插值、索引初始值设定项、null条件运算符等,并且专门讲解了函数式编程的相关特点。
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
    图书特别说明:由于成本考虑,本书不作为参考书赠送。如果确有授课教材选用的需求,可将详细情况发送给本书专属联系人,我们将进一步沟通并酌情处理。

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书是一本C#编程方面的优秀教材。在第五版的基础上,全书根据最新的C# 6规范进行了更新。除了讲解面向对象编程的类与对象、方法、控制语句、数组、继承、多态、异常处理、GUI、字符串和字符、文件和流、搜索与排序、泛型、集合、数据库等基本概念,还重点介绍了C# 6中新包含的功能,比如字符串插值、索引初始值设定项、null条件运算符等,并且专门讲解了函数式编程的相关特点。

    图书详情

    ISBN:9787121369292
    开 本:16开
    页 数:764
    字 数:1546.0

    本书目录

    目    录
    第1章  计算机、Internet和Visual C#简介	1
    1.1  简介	1
    1.2  在行业和研究领域的计算机与Internet	2
    1.3  硬件和软件	3
    1.4  数据层次	4
    1.5  机器语言、汇编语言和高级语言	6
    1.6  对象技术	7
    1.7  Internet和WWW	9
    1.8  C#	10
    1.9  Microsoft的 .NET	13
    1.10  Windows操作系统	14
    1.11  Visual Studio集成开发环境	15
    1.12  在Visual Studio Community中测试Painter程序	15
    自测题	17
    自测题答案	18
    练习题	19
    挑战题	20
    与挑战题相关的资源	21
    第2章  Visual Studio和可视化编程简介	22
    2.1  简介	22
    2.2  Visual Studio Community 2015 IDE概述	22
    2.3  菜单栏和工具栏	26
    2.4  Visual Studio IDE概览	27
    2.5  Help菜单与上下文相关帮助	30
    2.6  可视化编程:创建显示文本和图像的简单程序	30
    2.7  小结	36
    2.8  Web资源	36
    摘要	37
    术语表	38
    自测题	38
    自测题答案	39
    练习题	39
    第3章  C#编程入门	43
    3.1  简介	44
    3.2  一个简单程序:显示一行文本	44
    3.3  在VIsual Studio中创建简单的程序	48
    3.4  修改C#程序	52
    3.5  字符串插值	54
    3.6  另一个C#程序:整数相加	54
    3.7  内存概念	57
    3.8  算术运算	58
    3.9  判断:相等性运算符与关系运算符	60
    3.10  小结	64
    摘要	64
    术语表	66
    自测题	67
    自测题答案	68
    练习题	70
    挑战题	73
    第4章  类、对象、方法和string简介	74
    4.1  简介	75
    4.2  测试一个Account类	75
    4.3  包含实例变量、Set方法和Get方法的Account类	77
    4.4  创建、编译和运行带两个类的Visual C#项目	81
    4.5  包含Set方法和Get方法的软件工程	82
    4.6  具有属性而不是Set方法和Get方法的Account类	82
    4.7  自动实现的属性	85
    4.8  Account类:用构造函数初始化对象	86
    4.9  具有余额的Account类以及货币值处理	88
    4.10  小结	92
    摘要	93
    术语表	96
    自测题	97
    自测题答案	97
    练习题	98
    挑战题	99
    第5章  算法设计与控制语句(1)	100
    5.1  简介	101
    5.2  算法	101
    5.3  伪代码	101
    5.4  控制结构	102
    5.5  if单选择语句	103
    5.6  if…else双选择语句	104
    5.7  Student类:嵌套if…else语句	107
    5.8  while循环语句	109
    5.9  形成算法:计数器控制循环	110
    5.10  形成算法:标记控制循环	113
    5.11  形成算法:嵌套控制语句	118
    5.12  复合赋值运算符	121
    5.13  增量运算符和减量运算符	122
    5.14  简单类型	124
    5.15  小结	124
    摘要	125
    术语表	127
    自测题	128
    自测题答案	129
    练习题	130
    挑战题	135
    第6章  控制语句(2)	137
    6.1  简介	138
    6.2  计数器控制循环的实质	138
    6.3  for循环语句	139
    6.4  使用for语句的示例	141
    6.5  程序:对偶数求和	142
    6.6  程序:复利计算	143
    6.7  do…while循环语句	145
    6.8  switch多选择语句	146
    6.9  AutoPolicy类案例分析:switch语句中的字符串	150
    6.10  break和continue语句	152
    6.11  逻辑运算符	153
    6.12  结构化编程小结	158
    6.13  小结	161
    摘要	161
    术语表	163
    自测题	164
    自测题答案	165
    练习题	166
    挑战题	169
    第7章  方法:深入探究	170
    7.1  简介	171
    7.2  C#的代码包装	171
    7.3  静态方法、静态变量和Math类	172
    7.4  声明多参数方法	174
    7.5  关于方法使用的说明	177
    7.6  实参提升与强制转换	178
    7.7  .NET Framework类库	179
    7.8  案例分析:随机数生成方法	181
    7.9  案例分析:机会游戏(引入枚举)	184
    7.10  声明的作用域	188
    7.11  方法调用栈与活动记录	190
    7.12  方法重载	193
    7.13  可选参数	194
    7.14  命名参数	195
    7.15  C# 6的表达式方法和属性	196
    7.16  递归	196
    7.17  值类型与引用类型	199
    7.18  按值与按引用传递实参	199
    7.19  小结	202
    摘要	202
    术语表	207
    自测题	207
    自测题答案	209
    练习题	210
    挑战题	215
    第8章  数组以及异常处理简介	216
    8.1  简介	217
    8.2  数组	217
    8.3  声明和创建数组	218
    8.4  数组使用示例	219
    8.5  用数组分析汇总结果以及异常处理	226
    8.6  案例分析:模拟洗牌和发牌	228
    8.7  将数组和数组元素传入方法	232
    8.8  案例分析:GradeBook类用数组保存成绩	233
    8.9  多维数组	237
    8.10  案例分析:使用矩形数组的GradeBook类	241
    8.11  变长实参表	245
    8.12  使用命令行实参	246
    8.13  (选修)按值与按引用传递数组	248
    8.14  小结	251
    摘要	251
    术语表	254
    自测题	254
    自测题答案	255
    练习题	256
    拓展内容:建立自己的计算机	262
    挑战题	267
    第9章  LINQ和List集合简介	268
    9.1  简介	268
    9.2  用LINQ查询int数组	269
    9.3  用LINQ查询Employee对象数组	272
    9.4  集合	276
    9.5  用LINQ查询泛型List集合	279
    9.6  小结	281
    9.7  Deitel的LINQ资源中心	282
    摘要	282
    术语表	284
    自测题	284
    自测题答案	284
    练习题	284
    第10章  类与对象:深入探究	286
    10.1  简介	286
    10.2  Time类案例分析以及抛出异常	287
    10.3  控制对成员的访问	290
    10.4  用this引用访问当前对象的成员	290
    10.5  Time类案例分析:重载构造函数	292
    10.6  默认构造函数和无参数构造函数	296
    10.7  组合	297
    10.8  垃圾回收与析构函数	299
    10.9  静态类成员	300
    10.10  只读实例变量	302
    10.11  Class View与Object Browser	303
    10.12  对象初始值设定项	304
    10.13  运算符重载以及struct简介	305
    10.14  Time类案例分析:扩展方法	308
    10.15  小结	310
    摘要	310
    术语表	313
    自测题	313
    自测题答案	313
    练习题	314
    第11章  面向对象编程:继承	316
    11.1  简介	316
    11.2  基类与派生类	317
    11.3  protected成员	318
    11.4  基类与派生类的关系	319
    11.5  派生类的构造函数	333
    11.6  继承与软件工程	333
    11.7  object类	334
    11.8  小结	334
    摘要	335
    术语表	336
    自测题	336
    自测题答案	337
    练习题	337
    第12章  面向对象编程:多态与接口	339
    12.1  简介	339
    12.2  多态示例	340
    12.3  演示多态行为	341
    12.4  抽象类和抽象方法	343
    12.5  案例分析:使用多态的工资系统	345
    12.6  sealed方法和类	355
    12.7  案例分析:创建和使用接口	356
    12.8  小结	362
    摘要	362
    术语表	364
    自测题	364
    自测题答案	364
    练习题	365
    挑战题	366
    第13章  异常处理:深入探究	367
    13.1  简介	368
    13.2  示例:除数为0不用异常处理	368
    13.3  示例:处理DivideByZeroException和FormatException异常	370
    13.4  .NET的Exception层次	374
    13.5  finally语句块	375
    13.6  using语句	380
    13.7  Exception属性	381
    13.8  用户定义异常类	384
    13.9  检验空引用以及C# 6的“?.”运算符	387
    13.10  异常过滤器与C# 6的when子句	389
    13.11  小结	389
    摘要	389
    术语表	392
    自测题	392
    自测题答案	393
    练习题	393
    第14章  图形用户界面与Windows窗体(1)	395
    14.1  简介	395
    14.2  Windows窗体	396
    14.3  事件处理	398
    14.4  控件的属性和布局	403
    14.5  标签、文本框和按钮	406
    14.6  组框和面板	408
    14.7  复选框和单选钮	410
    14.8  图形框	416
    14.9  工具提示	418
    14.10  数字上下控件	419
    14.11  鼠标事件处理	420
    14.12  键事件处理	422
    14.13  小结	424
    摘要	424
    术语表	428
    自测题	429
    自测题答案	429
    练习题	430
    挑战题	431
    第15章  图形用户界面与Windows窗体(2)	433
    15.1  简介	433
    15.2  菜单	434
    15.3  MonthCalendar控件	440
    15.4  DateTimePicker控件	441
    15.5  LinkLabel控件	443
    15.6  ListBox控件	446
    15.7  CheckedListBox控件	449
    15.8  ComboBox控件	450
    15.9  TreeView控件	453
    15.10  ListView控件	457
    15.11  TabControl控件	462
    15.12  多文档界面(MDI)窗口	465
    15.13  可视化继承	470
    15.14  用户定义的控件	474
    15.15  小结	476
    摘要	476
    术语表	479
    自测题	480
    自测题答案	480
    练习题	481
    第16章  字符串和字符:深入探究	483
    16.1  简介	483
    16.2  字符和字符串基础	484
    16.3  string构造函数	484
    16.4  string索引器、Length属性和CopyTo方法	485
    16.5  字符串比较	487
    16.6  查找字符串中的字符和子串	489
    16.7  抽取字符串中的子串	491
    16.8  拼接字符串	492
    16.9  其他的string方法	492
    16.10  StringBuilder类	493
    16.11  StringBuilder类的Length属性、Capacity属性、EnsureCapacity方法 以及索引器	494
    16.12  StringBuilder类的Append和AppendFormat方法	495
    16.13  StringBuilder类的Insert、Remove和Replace方法	497
    16.14  几个Char方法	499
    16.15  (在线)正则表达式处理简介	501
    16.16  小结	501
    摘要	501
    术语表	503
    自测题	503
    自测题答案	504
    练习题	504
    挑战题	504
    第17章  文件和流	506
    17.1  简介	506
    17.2  文件和流	506
    17.3  创建顺序访问文本文件	507
    17.4  从顺序访问文本文件读取数据	513
    17.5  案例分析:信用查询程序	516
    17.6  序列化	520
    17.7  用对象序列化创建顺序访问文件	521
    17.8  从二进制文件读取和去序列化数据	524
    17.9  File类和Directory类	525
    17.10  小结	531
    摘要	532
    术语表	533
    自测题	534
    自测题答案	534
    练习题	535
    挑战题	536
    第18章  搜索与排序	537
    18.1  简介	537
    18.2  搜索算法	538
    18.3  排序算法	544
    18.4  搜索算法和排序算法的效率	553
    18.5  小结	554
    摘要	554
    术语表	556
    自测题	556
    自测题答案	556
    练习题	556
    第19章  定制链式数据结构	559
    19.1  简介	559
    19.2  简单类型struct以及装箱和拆箱	559
    19.3  自引用类	560
    19.4  链表	561
    19.5  栈	569
    19.6  队列	572
    19.7  树	575
    19.8  小结	584
    摘要	584
    术语表	586
    自测题	586
    自测题答案	587
    练习题	587
    拓展内容:建立自己的编译器	589
    第20章  泛型	590
    20.1  简介	590
    20.2  泛型方法的由来	591
    20.3  泛型方法的实现	592
    20.4  类型约束	594
    20.5  重载泛型方法	597
    20.6  泛型类	597
    20.7  小结	604
    摘要	604
    术语表	606
    自测题	606
    自测题答案	607
    练习题	607
    第21章  泛型集合以及LINQ/PLINQ函数式编程	609
    21.1  简介	610
    21.2  集合概述	611
    21.3  Array类和枚举器	612
    21.4  字典集合	615
    21.5  泛型LinkedList集合	619
    21.6  C# 6的null条件运算符“?[ ]”	623
    21.7  C# 6的字典和集合初始值设定项	623
    21.8  代理	624
    21.9  lambda表达式	626
    21.10  函数式编程简介	628
    21.11  用LINQ方法调用语法和lambda表达式进行函数式编程	630
    21.12  PLINQ:提升LINQ to Objects在多核处理器上的性能	634
    21.13  (选修)泛型类型的协变和逆变	637
    21.14  小结	638
    摘要	639
    术语表	643
    自测题	644
    自测题答案	645
    练习题	645
    函数式编程练习	646
    第22章  数据库和LINQ	648
    22.1  简介	648
    22.2  关系数据库	649
    22.3  Books数据库	650
    22.4  LINQ to Entities与ADO.NET实体框架	653
    22.5  用LINQ查询数据库	654
    22.6  动态绑定查询结果	663
    22.7  用LINQ取得来自多个表的数据	667
    22.8  创建主/细视图程序	671
    22.9  地址簿案例分析	673
    22.10  工具和Web资源	678
    22.11  小结	678
    摘要	678
    术语表	681
    自测题	682
    自测题答案	682
    练习题	683
    第23章  async、await与异步编程	684
    23.1  简介	684
    23.2  async和await概述	686
    23.3  在GUI程序中执行异步任务	686
    23.4  同步执行两个计算密集型任务	689
    23.5  异步执行两个计算密集型任务	691
    23.6  使用HttpClient类异步调用Flickr Web服务	694
    23.7  显示异步任务的进度	700
    23.8  小结	703
    摘要	703
    术语表	706
    自测题	707
    自测题答案	707
    练习题	707
    附录A  运算符优先级表	709
    附录B  简单类型	711
    附录C  ASCII字符集	712
    索引	715
    展开

    前     言

    译  者  序
    本书是全球知名的计算机编程语言作家Deitel父子编写的讲解Visual C#编程的一部著作。在上一版的基础上,全书根据C# 6规范进行了更新,重点突出规范中涉及的新功能,以充分利用C#强大的编程能力。本书以作者独有的“活代码”方法,详细讲解了面向对象编程和Visual C#编程。在介绍每一项功能时,都以一个能在真实环境下执行的程序体现,并且每一个程序都给出了最终的执行结果。这就是“活代码”的精髓所在。对于初学者而言,这种“眼见为实”的方式,能极大地加深对Visual C#编程的理解。
    本书内容根据Microsoft的Visual Studio Community 2015 版本进行了更新,以体现其新增加的功能和特性。同时,书中各章的组织结构安排非常合理,以适应从初学者到中高级C#程序员的学习需求。
    从大的模块来看,本书可分为几个部分,具体为:Visual C#简介(共2章),C#基础知识(共6章),面向对象编程(共5章),Windows 窗体GUI(共2章),字符串与文件(共2章),搜索、排序和泛型数据结构(共4章)、数据库操作(共1章),异步编程(共1章)。为了缩减篇幅,其中的一些高级内容放在了本书的配套网站上。
    具体到每一章,则讲解了面向对象编程和Visual C#编程所涉及的类、对象、方法、字符串与字符、控制语句、数组、继承、多态、异常处理、UML、Windows 窗体与GUI 设计、文件处理、数据搜索与排序、数据结构、泛型、集合、LINQ/PLINQ函数式编程、数据库、异步编程等。书中给出的示例带有很强的趣味性,比如纸牌游戏程序、学生成绩统计程序等,使读者在学习过程中不会感到枯燥。“挑战题”部分给出的习题则具有很强的现实性,比如肥胖问题、全球变暖问题、碳排放问题等,从而让学生逐渐适应将所学知识应用于现实生活中。
    书中关于C# 6新功能的讲解,穿插在常规内容的介绍中。这些新功能包括:字符串插值、表达式方法、自动属性初始值设定项、nameof运算符、null条件运算符“?.”和“?[ ]”、捕获异常的when子句、using static指令、用于具有Add扩展方法的任何集合的集合初始值设定项、索引初始值设定项等,它们是实现快速编程的利器,应充分掌握。
    本书的译者有着多年程序开发和数据库系统设计、管理、维护工作的经验。全书的相关术语,尤其是一些专业术语的译法,由北京工商大学张君施副教授负责制订标准。具体的翻译分工如下:前言及中英文术语对照表由张君施翻译,第1~4章由李剑渊翻译,第5~9章由卜静翻译,第10~15章由隆冬翻译,第16~20章由洛基山翻译,第21~23章及附录由张君施翻译。全书最后由洛基山负责统稿。
    由于本书翻译时间紧且由多人共同完成,再加上许多新出现的专业术语还没有公认的译法,因此译稿中如有不妥之处,恳请广大读者批评指正。译者的联系方式为bambo.zhang@gmail.com。
    
    译  者       
    2018 年10月于加拿大 
    
     
    前    言
    欢迎进入采用Microsoft的Visual C#编程语言来开发桌面、移动和Web程序的世界。本书以C# 6以及相关的Microsoft软件技术为基础 ,利用 .NET平台以及Visual Studio集成开发环境,可以方便地编写、测试和调试程序,并让它们在Windows设备上运行。Windows操作系统可运行于台式机和笔记本电脑、移动电话、平板电脑、游戏系统以及与物联网相关的大量设备上。
    我们相信,本书以及为学生和教师提供的配套资料,将使Visual C#的讲解变得内容丰富、全面、充满挑战且具娱乐性。全书讲解的前沿计算技术,适合相关专业的大学课程体系,它们是两个主要的专业组织——ACM和IEEE推荐的课程体系 。
    书中讲解了当前最流行的4种编程思想:
    ?  面向对象编程
    ?  结构化编程
    ?  泛型编程
    ?  函数式编程(这一版本新增)
    在阅读本书之前,可以先浏览一下业内人士对于本书的评价(见本书封底),它们精确地概述了本书的精髓。随后通过本书将为学生、教师以及专业人士提供更多的详细信息。
    本书的核心是作者独创的“活代码”方法——C#中的编程思想是在完全可工作的程序环境下给出的,并且提供了运行结果,而不是使用代码片段。书中的示例程序和练习题取材广泛,它们来自计算机科学、商业、教育、社会问题、个人设备、体育运动、数学、拼图游戏、仿真、博弈游戏、图形、多媒体以及许多其他领域。本书还提供了大量的表格、线状图和UML类图,从而提供更为可视化的学习体验。
    前言后面的“学前准备”部分,给出了如何将计算机设置成能够运行书中数百个代码示例的说明,并指导如何自己开发C#程序。书中的代码示例可从如下网站下载 :
     
    和
     
    利用这些源代码,可编译和运行每一个程序——这有助于读者更快、更深入地精通Visual C#以及相关的Microsoft技术。书中的大多数示例,都能够运行于Windows 7/8/10(没有9)系统的Visual Studio下。本书在线章节中的通用Windows平台(UWP)和XAML的代码示例,则要求运行于Windows 10系统下。
    联系作者
    在学习本书的过程中,如果有任何问题,可发邮件至
     
    我们会及时回复。
    加入Deitel & Associates公司的社交圈
    关于本书的更新,可访问:
     
    还可以订阅作者的Deitel Buzz Online新闻组:
     
    作者的社交媒体如下:
    ?  Facebook—http://facebook.com/DeitelFan
    ?  LinkedIn—http://linkedin.com/company/deitel-&-associates
    ?  YouTube—http://youtube.com/DeitelTV
    ?  Twitter—http://twitter.com/Deitel
    ?  Instagram—http://instagram.com/DeitelFan
    ?  Google+—http://google.com/+DeitelFan
    尽早讲解对象
    本书在第1章就讲解了面向对象编程的基本概念和术语。在第2章就允许读者可视化地操纵对象,比如标签和图形。第3章介绍C#编程,将编写操作已有对象的Visual C#程序。第4章中则会首次创建定制化的类和对象。尽早讲解对象和类,可以使读者立即“以对象的思维进行思考”,并且能更全面地理解这些概念。
    这种“尽早讲解对象”的思想,一直持续到第5~9章,它们给出了各种简单直接的案例分析。第10~12章中,将深入探究类和对象,讲解继承、接口和多态,然后将这些概念应用于接下来的各章中。
    C# 6新的语言特性
    全书都会讲解C# 6新的语言特性(见图1)——只要涉及一个新特性,本书页边会以文本“6”进行标注,如本段左侧所示。
               C# 6新的语言特性	相关章节
    字符串插值	3.5节
    表达式方法和get访问器	7.15节
    自动属性初始值设定项	8.6.1节
    只读自动实现的属性	8.6.1节
    nameof运算符	10.5.1节
    Null条件运算符“?.”	13.9.1节
    捕获异常的when子句	13.10节
    using static指令	21.3.1节
    null条件运算符“?[ ]”	21.6节
    用于具有Add扩展方法的任何集合的集合初始值设定项	21.7节
    索引初始值设定项	21.7节
    图1  C# 6新的语言特性
    充满趣味性、娱乐性和挑战性的练习题
    本书包含数百个练习题,用于实践所学技巧。为便于自学,书中给出了大量的自测题以及答案。每一章都包含相当数量的练习题,通常的形式包括:
    ?  简单回顾重要的术语和概念
    ?  找出代码示例中的错误
    ?  编写一条程序语句
    ?  编写执行某项任务的方法
    ?  编写C#类
    ?  编写完整的程序
    ?  完成几个重要的项目
    图2中给出了本书中数百个练习题的一小部分,其中包括一些“挑战题”。挑战题鼓励读者利用计算机和Internet来研究并解决重大的社会问题。希望读者能用自己的价值观、策略和信念找出它们的解决之道。有关书中练习题的答案,只提供给采用本书作为教材的大学教师 。
    书中的一些练习题
    “碳足迹”计算器
    体重指数计算器
    混合动力汽车的特性
    性别中性化
    记事本GUI
    日历和约会GUI
    计算器GUI
    闹钟GUI
    收音机GUI
    显示形状
    奇偶性判断
    数字倍数关系判断
    拆分整数中的数字
    平方表和立方表
    Account类
    Invoice类
    Employee类
    Date类
    删除重复代码
    目标心率计算器
    健康记录的计算机化
    信用额度计算器
    销售佣金计算器
    薪水计算器
    找出最大的两个数
    悬垂else问题
    回文
    与二进制数等价的十进制数
    直角三角形的边
    阶乘
    无穷序列:数学常量e
    全球人口增长
    用密码强制保护隐私
    条形图显示
    质数
    销售情况统计
    拼车省钱计算器	汽车油耗计算器
    计算π值
    勾股数组
    关于全球变暖问题的小测验
    另一种税务规划:FairTax
    保留指定小数位
    直角三角形的斜边长
    显示由任意字符组成的正方形
    分离数字
    温度转换
    完数
    质数
    颠倒数字
    将平均成绩转换成4个等级
    抛硬币
    猜数游戏
    两点间的距离
    带赌注的掷骰子游戏
    汉诺塔
    计算机辅助教学
    销售佣金
    消除重复值
    掷骰子游戏
    航空订位系统
    骑士旅行国际象棋游戏
    八皇后国际象棋游戏
    Eratosthenes筛选法
    龟兔赛跑
    洗牌与发牌
    建立自己的计算机(虚拟机)
    投票
    查询Invoice对象数组
    删除重复的单词
    Rectangle类
    储蓄账户类
    整数集
    RationalNumber类	HugeInteger类
    Tic-Tac-Toe游戏
    ComplexNumber类
    Shape继承层次
    工资系统
    应付款程序
    多态银行程序
    CarbonFootprint接口:多态
    画图
    猜数游戏
    Ecofont字体
    打字练习
    饭店账单计算器
    文章编写器
    儿童黑话(Pig Latin)
    更健康的烹饪配料
    消除垃圾邮件
    SMS语言
    学生成绩文件
    生成表示电话号码的单词
    学生调查
    网络钓鱼扫描程序
    桶排序
    回文
    用栈求值表达式
    建立自己的编译器
    泛型线性搜索
    Color类的SortedDictionary
    质因子
    使用LinkedList<int>的桶排序
    使用BitArray执行Eratosthenes筛选法
    信用查询程序
    掷骰子60 000 000次
    Baseball数据库程序
    使用LINQ to XML进行解析
    I/O密集型程序与计算密集型程序
    递归地计算Fibonacci数
    图2  本书中的一些练习题
    本书概览
    这一部分讲解本书内容的组织结构,以帮助教师制订教学计划。
    计算、Visual C#和Visual Studio Community 2015简介
    以下两章:
    ?  第1章  计算机、Internet和Visual C#简介
    ?  第2章  Visual Studio和可视化编程简介
    讲解的是硬件和软件的基础知识、Microsoft的 .NET平台以及可视化编程。书中绝大部分的示例程序,都可以运行于安装了Visual Studio Community 2015的Windows 7/8/10系统上。1.12节中测试了一个有趣的Painter程序。第1章在讲解面向对象编程时,定义了一些主要的术语,探讨了一些重要的概念,它们将用于后面的章节中。
    C#基础知识简介
    以下几章:
    ?  第3章  C#编程入门
    ?  第4章  类、对象、方法和string简介
    ?  第5章  算法设计与控制语句(1)
    ?  第6章  控制语句(2)
    ?  第7章  方法:深入探究
    ?  第8章  数组以及异常处理简介
    涵盖了C#编程的基础知识(数据类型、运算符、控制语句、方法、数组),并讲解了面向对象编程。这几章必须按顺序讲解与学习。第5章和第6章很好地讲解了控制语句以及问题求解的过程;第7章和第8章分别详细探讨了方法和数组。第8章在讲解异常处理时给出了一个示例,它演示了访问数组边界之外的元素时会出现的情况。
    面向对象编程:深入探究
    以下几章:
    ?  第9章  LINQ和List集合简介
    ?  第10章  类与对象:深入探究
    ?  第11章  面向对象编程:继承
    ?  第12章  面向对象编程:多态与接口
    ?  第13章  异常处理:深入探究
    详细讲解了面向对象编程,包括类、对象、继承、多态、接口以及异常处理。可选学的两章在线章节以案例的形式探讨了为一个简单的ATM设计并实现面向对象软件的过程,细节将在后面给出。
    第9章讲解了Microsoft的语言集成查询(LINQ)技术,这种技术对操作来自各种数据源的数据提供了统一的语法。这些数据源可以是数组、集合或者后面几章将会讲解的XML和数据库。这一章的内容简明扼要,以鼓励教师尽早讲解LINQ技术。9.4节介绍了第12章中会用到的List集合。在本书的后面深入分析了LINQ,涉及LINQ to Entities(用于数据库查询)和LINQ to XML。如果所讲课程不涉及LINQ,则可以省略这一章中有关LINQ的内容。或者,当讲到第17章的一个示例(见图17.6)以及第22章以后的内容时,才讲解这一部分。
    Windows窗体GUI
    以下两章:
    ?  第14章  图形用户界面与Windows窗体(1)
    ?  第15章  图形用户界面与Windows窗体(2)
    详细讲解了如何用Windows窗体构建GUI。讲授Visual C#的教师,依然强烈希望在课堂上使用Windows窗体。这两章中的大多数示例程序,可以在学习完第4章后讲解。在其他几章中,也用到了Windows窗体GUI。
    Windows中还存在另外两种GUI技术——Windows Presentation Foundation(WPF)和Universal Windows Platform(UWP)。有关它们的讲解,请参见在线章节 。
    字符串和文件
    以下两章:
    ?  第16章  字符串和字符:深入探究
    ?  第17章  文件和流
    分别讲解了字符串和文件的处理。第4章介绍了字符串,然后在整本书中都将用到它。第16章更详细地讨论了字符串。第16章中的大多数示例程序,可以在学习完第4章后再讲解。第17章的内容涉及文本文件处理和对象序列化,后者针对的是如何输入和输出整个对象。在学习第17章的内容之前,要求掌握第14章讲解的Windows窗体的概念。
    搜索、排序和泛型数据结构
    以下几章:
    ?  第18章  搜索与排序
    ?  第19章  定制链式数据结构
    ?  第20章  泛型
    ?  第21章  泛型集合以及LINQ/PLINQ函数式编程
    讲解的是搜索、排序和数据结构的相关内容。大多数C#程序员都应当使用 .NET内置的搜索、排序和泛型集合(预包装的数据结构)功能,它们将在第21章探讨。如果希望讲解如何实现定制化的搜索、排序和数据结构功能,则可以学习第18~20章,这几章内容的学习要求事先掌握第3~8章和第10~13章中的知识。第18章给出了几个搜索和排序算法,并通过大O符号来比较每一种算法的复杂度——特别地,代码示例采用了可视化输出的方式,以展现算法是如何工作的。第19章讲解的是如何实现定制的数据结构,包括列表、栈、队列和二叉树。这一章中讲解的数据结构,保存的是对象的引用。第20章讲解C#泛型,并演示了如何创建类型安全的泛型方法和类型安全的栈数据结构。
    利用LINQ、PLINQ、lambda表达式、委托以及不变性的函数式编程
    除了泛型集合,第21章还讲解了一些有关编程的基础知识,包括如何用LINQ to Objects更简明地编写代码,从而写出包含更少错误的程序。21.12节中采用了一个额外的方法调用,演示了PLINQ(Parallel LINQ)如何能够在多核系统中极大地提高LINQ to Objects的性能。这一章的练习题要求重新实现以前采用函数式编程技术的几个示例。
    数据库、LINQ to Entities和SQL Server
    这部分包含一章:
    ?  第22章  数据库和LINQ
    为初学者讲解了数据库编程,采用的是ADO.NET实体框架、LINQ to Entities以及Microsoft的SQL Server免费版本(它随Visual Studio Community 2015一起安装)。在学习这一章中的示例程序之前,要求掌握第3~14章中的C#、面向对象编程以及Windows窗体等知识。在线的几章内容采用了本章中讲解的技术。
    异步编程
    这部分包含一章:
    ?  第23章  async、await与异步编程
    它讲解的是如何利用多核体系结构来编写能够异步执行任务的程序,从而提升那些需长时间运行或者计算密集型任务的程序的性能和GUI响应能力。async修饰符和await运算符极大地简化了异步编程,减少了相关的错误,并且使程序能够利用当今的多核计算机、智能手机和平板电脑的处理能力。本书第六版增加了一个案例分析,它在一个GUI程序中使用了任务并行库(TPL)、async和await——当进度条在一个GUI线程中持续前进时,让一个耗时的、计算密集型运算在另一个线程中并行地执行。
    在线章节介绍
    对于大多数入门性和中级的Visual C#课程而言,本书的印刷版本包含相当全面的核心内容(第1~23章)。对于高级课程和专业课程而言,可以讲解与本书相关的几章在线内容 。
    图3中列出了在线章节所讨论的一些主题,而图4给出的是在线章节的配套练习题。
    在线章节涉及的主题
    Web程序开发和ASP .NET
    XML和LINQ to XML
    UWP GUI、图形、多媒体和XAML
    REST Web服务
    云计算与Microsoft Azure
    使用Visual Studio Debugger
    (选修)WPF GUI、图形、多媒体和XAML
    (选修)ATM案例分析(1):面向对象设计和UML
    (选修)ATM案例分析(2):在C#中实现面向对象设计
    图3  在线章节涉及的主题
    在线章节的配套练习题
    来宾簿程序
    基于Web的地址簿
    增强的绘图程序
    照片查看器
    数据绑定与LINQ查询
    贪吃蛇
    画图程序
    增强的小费计算器	贷款计算器
    学生贷款还款计算器
    汽车分期付款计算器
    汽车油耗计算器
    体重指数计算器
    目标心率计算器
    电话簿Web服务
    搜索喜欢的Flickr照片	国旗小测验
    电话簿程序与数据绑定
    增强的UsingGradients程序
    增强的DrawStars程序
    图像反射器
    辅助功能:语音控制的画图程序
    
    
    图4  在线章节的配套练习题
    Web程序开发和ASP .NET
    利用Microsoft的 .NET服务器端技术ASP .NET,可以创建健壮的、可扩展的基于Web的程序。我们将创建几个程序,包括一个基于Web的来宾簿程序,它使用ASP .NET和ADO .NET实体框架,将数据保存到数据库中并显示在Web页面上。
    可扩展标记语言(XML)
    在软件开发行业和电子商务中,大量使用了可扩展标记语言(XML)。在 .NET平台上,XML也是无处不在的。XML主要用于本书的在线内容。使用XML时要求理解XAML——Microsoft的XML词汇表,它用来描述UWP GUI、图形和多媒体。在线章节中首先讲解了XML基础知识,然后探讨了LINQ to XML,它利用LINQ语法来查询XML内容。
    用于桌面和移动程序的UWP
    Universal Windows Platform (UWP)用于为所有的Windows设备提供共同的平台和用户体验,这些设备包括个人计算机、智能手机、平板电脑、Xbox,甚至Microsoft最新的HoloLens增强现实全息头盔——它们都使用几乎相同的代码。书中讲解了一些GUI、图形和多媒体程序,并在个人计算机和智能手机模拟器中演示了它们的运行情况,智能手机模拟器可在Visual Studio Community 2015中找到。
    REST Web服务
    Web服务使程序员能够将程序的功能打包,使Web变成一种可重复使用的服务库。其中一个案例讲解的是数学测验题生成程序Web服务,它可由数学教学程序调用。
    创建Microsoft Azure云计算程序
    Microsoft Azure的Web服务,可用来在“云”上开发、管理和发布程序。书中演示了如何利用Azure Web服务,将程序的数据进行在线保存。
    WPF GUI、图形和多媒体
    Windows Presentation Foundation(WPF)诞生于Windows窗体之后、UWP之前,它是Microsoft用于构建健壮的GUI、图形和多媒体桌面程序的另一种技术。WPF对GUI的外观提供了全面的控制,包括在Windows窗体中不曾具备的多媒体能力。在讲解WPF时,我们实现了绘图、文本编辑器、颜色选择器、图书封面查看器、电视视频播放器、各种动画以及语音合成与识别等程序。
    由于需要用UWP替换WPF,以创建能够运行于桌面、移动和其他Windows设备上的程序,所以书中讲解WPF的内容直接来自本书的上一个版本,并且作者不再对这部分内容的正确性负责。
    可选的案例分析:使用UML开发ATM的面向对象设计和C#实现
    UML(统一建模语言)是设计面向对象系统的图形化建模语言的行业标准。本书的前几章讲解了UML,并提供了一个可选学的面向对象案例分析(在线章节),它使用UML来设计并实现一个简单的ATM系统。在这一部分内容中,分析了一个构建系统细节所要求的典型需求文档,明确了实现该系统所需要的类、类需要具有的属性、类需要表现的行为,还指定了类的方法必须如何交互,以满足系统需求。根据这些设计,书中还给出了一个可运行的C#实现。读者经常反馈说,他们有“眼前一亮”的感觉。这个“集大成”的案例分析,使他们真正理解了面向对象的概念。
    教学方法
    本书包含丰富的示例。书中强调的是程序的清晰性,并集中讲解如何构建良好工程化的软件。
    “活代码”方法  书中采用的是“活代码”示例——大多数的新概念,都是在完整的、可运行的Visual C#程序环境中给出的。在程序的后面,都提供了一个或多个展示输入和输出结果的执行界面。少数情况下给出的是代码片段,但是为了确保正确性,首先会将它们置于一个完整可运行的程序中进行测试,然后将它们复制出来并放于书中。
    目标  每一章开始处的“目标”部分,给出的是该章所涉及的主题。
    编程提示  书中提供的编程提示,可帮助读者关注程序开发过程中的重要方面。这些提示和实践,体现了两位作者累计90余年的编程和教学经验之精华。
     	良好的编程实践
    	“良好的编程实践”提示,有助于得到更清晰、更易理解和更易维护的程序。
    
     	常见编程错误
    	给出这个编程提示,可使读者减少类似的错误。
    
     	错误防止提示 
    	这类提示包含暴露和删除程序bug的建议,大多数描述的是如何在Visual C#中防止将bug带入程序。
    
     	性能提示 
    	这些提示,强调的是使程序运行得更快或使内存占用最小化的可能性。
    
     	可移植性提示
    	帮助读者编写能运行在各种平台下的代码。
    
     	软件工程结论 
    	它强调的是体系性以及设计的问题,这些问题会影响软件系统的建立,尤其是对于大规模的系统。
    
     	外观设计提示 
    	这些提示可帮助用户设计出有吸引力的、友好的图形用户界面,以符合业界规范。
    摘要  各章(除第1章外)末尾给出了这一章的汇总性内容。
    术语表  在每一章(除第1章外)中,都包含了一个按字母顺序排列的重要术语的列表。
    索引  本书包含大量的索引。
    获取本书中所用的软件
    本书中的代码示例,是用Microsoft免费的Visual Studio Community 2015编写的。前言后面的“学前准备”部分,给出了下载和安装这些资源的指南。
    教辅资源 
    采用本书作为教材的教师,可以获得下面这些教辅资源。
    ?  习题解答手册  给出了各章末尾大多数练习题的答案。本书新增了许多挑战题,大部分都提供了答案。项目类的练习题没有提供答案。可以访问作者的Programming Projects Resource Center,获取大量额外的练习题和项目题:
     
    ?  测试项目文件  选择题(大约每一节给出两个问题)。
    ?  PowerPoint文件  包含了教材中的大部分代码和图表,并总结了重要的概念。
    Microsoft DreamSpark
    Microsoft免费为学生提供许多专业的开发和设计工具,这个项目称为DreamSpark(http://www. dreamspark.com)。关于验证学生身份以便能利用这个项目的详细信息,请参见该网站。为了编译、测试、调试和运行书中的程序示例,需要Windows 10系统以及免费的Visual Studio Community 2015。除了在线的UWP示例,书中的其他示例还可以在Windows 7及以上版本的系统中编译和运行。
    致谢
    我们要感谢Deitel & Associates公司的Barbara Deitel,她研究了Visual C#、Visual Studio、.NET的新功能以及其他的重要技术。还要感谢哈丁大学(Harding University)计算机科学系的助理教授Frank McCown博士,他建议我们在第23章包含一个带有async和await的ProgressBar示例,因此我们将一个类似的例子从另一本教材Java How to Program, 10/e移植到了本书中。
    我们有幸与Pearson Higher Education的出版专家团队共同完成了这个项目。感谢Computer Science执行主编Tracy Johnson的指导以及为本书付出的精力。Kristy Alaura成功地召集了本书的评审成员并组织了评审过程。Bob Engelhardt很好地完成了本书的出版工作。
    评审人员
    本书得到了讲授 C#课程的教师以及行业专家的仔细评审,他们为本书的内容提出了无数的建议。书中遗留下来的问题,都是作者本人的责任。
    第六版的评审人员:Qian Chen(Department of Engineering Technology: Computer Science Technology Program,Savannah State University),Octavio Hernandez(Microsoft Certified Solutions Developer,Principal Software Engineer at Advanced Bionics),José Antonio González Seco(Parliament of Andalusia,Spain),Bradley Sward(College of Dupage),Lucian Wischik(Microsoft Visual C# Team)。
    第五版出版后的评审人员:为了准备本书第六版的编写,如下学者评审了第五版并提供了大量有益的建议。他们是:Qian Chen(Savannah State University),Hongmei Chi(Florida A&M University),Kui Du(University of Massachusetts,Boston),James Leasure(Cuyahoga Community College West),Victor Miller(Ramapo College),Gary Savard(Champlain College),Mohammad Yusuf(New Hampshire Technical Institute)。
    其他评审人员:Douglas B. Bock(MCSD.NET,Southern Illinois University Edwardsville),Dan Crevier(Microsoft),Shay Friedman(Microsoft Visual C# MVP),Amit K. Ghosh(University of Texas at El Paso),Marcelo Guerra Hahn(Microsoft),Kim Hamilton(Software Design Engineer at Microsoft and co-author of Learning UML 2.0),Huanhui Hu(Microsoft Corporation),Stephen Hustedde(South Mountain College),James Edward Keysor(Florida Institute of Technology),Narges Kasiri(Oklahoma State University),Helena Kotas(Microsoft),Charles Liu(University of Texas at San Antonio),Chris Lovett(Software Architect at Microsoft),Bashar Lulu(INETA Country Leader,Arabian Gulf),John McIlhinney(Spatial Intelligence; Microsoft MVP Visual Developer,Visual Basic),Ged Mead(Microsoft Visual Basic MVP,DevCity.net),Anand Mukundan(Architect,Polaris Software Lab Ltd.),Dr. Hamid R. Nemati(The University of North Carolina at Greensboro),Timothy Ng(Microsoft),Akira Onishi(Microsoft),Jeffrey P. Scott(Blackhawk Technical College),Joe Stagner(Senior Program Manager,Developer Tools & Platforms,Microsoft),Erick Thompson(Microsoft),Jesús Ubaldo Quevedo-Torrero(University of Wisconsin–Parkside,Department of Computer Science),Shawn Weisfeld(Microsoft MVP and President and Founder of UserGroup.tv),Zijiang Yang(Western Michigan University)。
    
    我们衷心欢迎读者提出意见、批评、更正和建议,以完善本书。请将它们发送至:
     
    我们会及时回复。我们希望你会乐意阅读本书,如同我们在编写它时一样。
    Paul Deitel 
    Harvey Deitel
    关于作者
    Paul Deitel,Deitel & Associates公司CEO兼CTO,具有超过35年计算机行业的工作经验,毕业于麻省理工学院。通过Deitel & Associates公司,他向行业客户提供了数以百计的编程课程,这些客户包括:Cisco,IBM,Boeing,Siemens,Sun Microsystems(现在为Oracle),Dell,Fidelity,NASA肯尼迪航天中心,美国国家风暴实验室,NOAA(美国国家海洋和大气管理局),白沙导弹基地,Rogue Wave Software,SunGard,Nortel Networks,Puma,iRobot,Invensys,等等。他和合作者Harvey Deitel博士,是全球畅销的编程语言教材和专业图书/音频产品的作者。
    Paul获得过2012年至2014年的Microsoft C# MVP称号。Microsoft MVP是一个年度奖项,授予全球知名的、有突出贡献的技术社区领导者,他们积极地与用户和Microsoft共享高质量的、来自真实世界的知识。Paul还拥有Java Certified Programmer和Java Certified Developer证书,并且被授予Oracle Java Champion称号。
    Harvey Deitel博士,Deitel & Associates公司主席兼首席战略官,具有55年以上的计算机行业工作经验。Deitel博士在麻省理工学院获得电子工程学士和硕士学位,在波士顿大学获得数学博士学位——在将计算机科学专业从这些专业分离出去之前,Deitel博士已经学习过计算机知识。他具有丰富的大学教学经验,在与儿子Paul于1991年创立Deitel & Associates公司之前,Deitel博士是波士顿大学计算机科学系主任并获得了终身教职。他们的出版物已经赢得了国际声誉,并被翻译成了日文、德文、俄文、西班牙文、法文、波兰文、意大利文、简体中文、繁体中文、韩文、葡萄牙文、希腊文、乌尔都文和土耳其文。Deitel博士为许多大公司、学术机构、政府部门和军队提供了数百场的专业编程培训。
    关于Deitel & Associates公司
    Deitel & Associates公司由Paul Deitel和Harvey Deitel创立,是一家国际知名的提供企业培训服务和著作出版的公司,专门进行计算机编程语言、对象技术、Internet和Web软件技术以及Android 和iOS程序开发方面的培训和图书出版。公司的客户包括许多大公司、政府部门、军队以及学术机构。公司向全球客户提供由教师主导的主要编程语言和平台课程,包括Visual C#、C++、C、Java,Android程序开发,iOS程序开发,Swift、Visual Basic以及Internet和Web程序开发。
    Deitel & Associates公司与Prentice Hall/Pearson出版社具有40年的出版合作关系,出版了一流的编程教材、专业图书、LiveLessons视频课程、电子书,以及包含集成实验室和评估系统的REVEL交互式多媒体课程(http://revel.pearson.com)。可通过如下电子邮件地址联系Deitel & Associates公司和作者:
     
    想了解有关Deitel的企业培训课程,可访问:
     
    如果贵公司或机构希望获得关于教师现场培训的建议,可发邮件至deitel@deitel.com。
    希望购买Deitel图书的个人,可访问:
     
    希望购买LiveLessons视频课程的个人,可访问:
     
    Deitel图书的电子版和LiveLessons视频课程,通常可通过Safari Books Online订阅:
     
    想获得10天免费的Safari Books Online试读,可访问:
     
    公司、政府部门、军队和学术机构的团购,应直接与Pearson出版社联系。更多信息,请访问:
     
     
    学 前 准 备
    在阅读本书之前请先阅读本节,以确保正确设置了计算机。
    Visual Studio Community 2015版本
    本教材使用Windows 10系统和免费的Visual Studio Community 2015版本——Visual Studio也可运行于Windows系统的各种老版本上。应确保系统满足如下网站列出的最低要求,以运行Visual Studio Community 2015版本:
     
    接着,从如下网站下载安装程序:
     
    执行安装程序,并按照屏幕提示安装Visual Studio。
    尽管书中的示例是在Windows 10系统下开发的,但是它们也能运行于Windows 7系统及以上的版本中,不过在线的UWP示例除外。不包含GUI的大多数示例程序,也能够运行于其他的C#和 .NET版本中——详细信息请参见后面的“不使用Microsoft Visual C#”内容。
    查看文件扩展名
    本书中有几个屏幕截图显示了带文件扩展名(如 .txt、.cs或 .png等)的文件名。可能需要将系统调整成显示文件扩展名。Windows 7系统中的操作方法如下:
    1.打开Windows Explorer(资源管理器)。
    2.按Alt键显示菜单栏,然后从Tools(工具)菜单中选择Folder Options(文件夹选项)。
    3.在出现的对话框中选择View(查看)选项卡。
    4.在Advanced settings(高级设置)窗格中,取消Hide extensions for known file types(隐藏已知文件类型的扩展名)旁边的复选框的选中状态。
    5.单击OK按钮并关闭对话框。
    Windows 8/10系统中的操作方法如下:
    1.打开File Explorer。
    2.单击View选项卡。
    3.确保选中了File name extensions(文件扩展名)选项。
    获取源代码
    本书中的示例程序源代码可从如下网站下载 :
     
    单击Examples链接,将ZIP压缩文件下载到本地计算机——大多数浏览器都会默认将它下载到用户账户的Downloads文件夹下。可通过Windows内置的解压功能,或者使用第三方的压缩文件工具,解压这个ZIP文件。例如,可使用WinZip(www.winzip.com)或者7-zip(www.7-zip.org)。
    在本书有关示例代码的讲解中,假定已经将这个ZIP文件解压到用户账户的Documents文件夹下,也可以将它们解压到其他位置。但是,需要相应地更改书中讲述的那些步骤。利用Windows内置的功能解压这个ZIP文件的步骤如下:
    1.打开Windows Explorer(Windows 7)或File Explorer(Windows 8/10)。
    2.找到系统中的ZIP文件,通常它位于用户账户的Downloads文件夹下。
    3.右击这个文件,选择Extract All选项。
    4.在出现的对话框中,选择希望放置解压文件的文件夹,然后单击Extract按钮。
    配置Visual Studio
    这里将使用Visual Studio的Options对话框来配置几个Visual Studio选项。这些选项设置并不是必需的,但是它们可使显示出的Visual Studio界面与书中给出的屏幕截图一致。
    Visual Studio主题
    Visual Studio具有三种颜色主题——Blue(蓝色)、Dark(深色)和Light(浅色)。英文原版书中使用的是带有浅色背景的Blue主题,以使书中的屏幕截图信息更易阅读。更改颜色主题的步骤如下:
    1.在Visual Studio的Tools菜单中选择Options,显示Options对话框。
    2.在左列中选择Environment。
    3.选择希望使用的Color theme。
    执行下面的操作时也要打开Options对话框。
    行号
    本书在分析示例程序时,采用行号来引用程序。许多程序员发现,在Visual Studio中显示行号也是有帮助的。为此,需执行如下操作:
    1.展开Options对话框左侧面板中的Text Editor节点。
    2.选择All Languages。
    3.在右侧面板中,选中Line numbers复选框。
    保持Options对话框的打开状态,执行下面的操作。
    代码缩进的制表符宽度设置
    Microsoft建议在源代码中采用4个空格的缩进形式,它是Visual Studio的默认设置。由于书中代码行固定宽度的限制,这里采用的是3个空格的缩进,以减少代码行的数量,使代码更易阅读。改成3个空格缩进格式的步骤如下:
    1.展开Options对话框左侧面板中的C#节点,选择Tabs。
    2.选择Insert spaces。
    3.在Tab size和Indent size文本框中都输入数字3。
    4.单击OK按钮,保存设置。
    不使用Microsoft Visual C#
    通过由 .NET Foundation(http://www.dotnetfoundation.org)管理的两个开源项目——Mono Project和 .NET Core,可以在其他的平台上运行C#程序。
    Mono Project
    Mono Project为一个跨平台的C#和 .NET Framework开源项目,可安装在Linux、OS X(即后来的macOS)和Windows上。本书中的大多数非GUI示例程序,都是用Mono Project编译和运行的。Mono Project还支持Windows窗体GUI,它用在第14~15章以及后面的几个示例程序中。有关Mono Project的更多信息,请访问:
     
    .NET Core
    .NET Core是一个新的针对Windows、Linux、OS X和FreeBSD的跨平台 .NET实现方案。本书中的大多数非GUI示例程序,也可以用 .NET Core编译和运行。到本书编写时为止,针对Windows的 .NET Core版本已经发布,而其他平台的版本仍在开发之中。有关 .NET Core的更多信息,请访问:
     
    至此,就为学习本书做好了准备,希望你能喜欢它!
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网