猜你喜欢
Head First C#(第四版)

Head First C#(第四版)

书籍作者:安德鲁施特尔曼 ISBN:9787519864484
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7863
创建日期:2023-03-28 发布日期:2023-03-28
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

这本书对C#、.NET Core和Visual Studio做了妙趣横生、生动形象的介绍,利用这本书,你可以深入学习C#,并创建应用、用户界面、游戏以及更多其他项目。经过全面更新,这个指南涵盖了C# 8.0和Visual Studio 2019,初学者从第一章就可以开始构建一个功能完备的游戏。接下来你会学习如何使用类和面向对象编程、在Unity中创建3D游戏,以及如何使用LINQ查询数据。在这个过程中,你会解决谜题、动手完成练习,并构建真实的应用。完成所有这些之后,你会成为一名高水平的C#程序员,而且这将是一个轻松愉悦的学习过程!

作者简介

Andrew Stellman,虽然是一个土生土长的纽约人,不过曾两次居住在明尼阿波利斯、日内瓦和匹兹堡……第一次是从卡耐基梅隆计算机科学学院毕业,然后是他和Jenny开始着手开展他们的咨询业务,并为O’Reilly写他们的第一本书。

Jennifer Greene,在大学里学的是哲学,不过,与这个领域中的所有其他人一样,光凭哲学没办法找到工作。幸运的是,她是一个优秀的软件工程师,所以开始投身在线服务行业,这也是她第一次切实感受到好的软件开发是什么样的。

前言

如何使用这本书
这本书适合谁?
如果对下面的所有问题都回答“是”:
1是不是想学习C#(并在这个过程中获得一些游戏开发和Unity的知识)?
2喜欢动手操练吗?是不是喜欢在做中学,而不是只看不做,纸上谈兵?
3你是不是更喜欢轻松有趣、富有启发的交谈,而不是枯燥乏味的技术报告?
那么,这本书正是你需要的。
这本书可能不适合谁?
如果满足下面任何一种情况:
1是不是对理论而不是实践更感兴趣?
2是不是一想到做项目和写代码就让你头疼,甚至有些紧张?
3是不是总是害怕新鲜事物?你是不是认为一本关于开发的正经书就应该始终保持严肃?
那么,你可以先考虑其他的书。
很多人学习C#作为他们的第二(或者第三,甚至第四)语言,不过开始学习这本书时,并不要求你写过大量代码。
如果你用任何编程语言写过程序(即使是很小的程序),在学校或者在线学过入门的编程课程,写过shell脚本,或者用过数据库查询语言,那么肯定已经具备学习这本书的背景知识,你会感觉得心应手。
如果你没有太多经验,但是还是想学C# ,该怎么做呢?成千上万的初学者(特别是之前创建过网页或者用过Excel功能的人)都使用这本书来学习C#。不过,如果你完全是个新手,建议你先看看Eric Freeman的《Head First Learn to Code》。
如果你还在犹豫《Head First C#》是否适合你,可以先看看前4章。你可以从https://github.com/head-first-csharp/fourth-edition免费下载这几章。如果感觉很轻松,说明这本书适合你!如果让你头疼,就应该考虑先看看《HeadFirst Learn to Code》,读过那本书之后,你就能做好准备,可以读这本书了。
我们知道你在想什么。
“这是一本正经的C#编程书吗?”
“这些图用来做什么?”
“我真能这样学吗?”
我们也知道你的大脑正在想什么。
你的大脑总是渴求一些新奇的东西。它一直在搜寻、审视、期待着不寻常的事情发生。大脑的构造就是如此,它正是这样帮助你与时俱进。
我们每天都会遇到许多按部就班的事情,这些事情很普通,对于这样一些例行的事情或者平常的东西,你的大脑是怎么处理的呢?它的做法很简单,就是不让这些平常的东西妨碍大脑真正的工作。那么什么是大脑真正的工作呢?这就是记住那些确实重要的事情。它不会费心地去记乏味的东西,就好像大脑里有一个筛子,会筛掉“显然不重要”的东西。
那么你的大脑怎么知道到底哪些东西重要呢?打个比方,假如你某一天外出旅行,突然一只大老虎跳到你面前,此时此刻,你的大脑和身体会做何反应?
神经元会“点火”,情绪爆发,释放出一些化学物质。
好了,这样你的大脑就会知道……
这肯定很重要! 可不能忘记了!
不过,假如你正待在家里或者坐在图书馆里,这里很安全、很舒适,肯定没有老虎。你正在刻苦学习,准备应付考试。或者可能想学一些很难的技术,你的老板认为掌握这种技术需要一周时间,最多不超过十天。
这就存在一个问题。你的大脑很想帮忙。它会努力地把这些显然不太重要的内容赶走,保证这些东西不去侵占本不充足的脑力资源。这些资源最好还是用来记住那些确实重要的事情,比如大老虎、遭遇火灾险情等。再比如,你的大脑会让你记住,绝对不能把聚会狂欢的照片放在你的Facebook页面上。
没有一种简单的办法来告诉大脑:“嘿,大脑,真是谢谢你了,不过不管这本书多没意思,也不管现在我对它多么无动于衷,但我确实希望你能把这些东西记下来。”
我们认为“Head First”读者是学习者。
那么,怎么学习呢?首先必须获得知识,然后保证自己确实不会忘记。这可不是填鸭式的硬塞。根据认知科学、神经生物学和教育心理学的最新研究,学习的途径相当丰富,绝非只是通过书本上的文字。我们知道怎么让你的大脑兴奋起来。
下面是一些Head First学习原则:
看得到。与单纯的文字相比,图片更能让人记得住,通过图片,学习效率会更高(对于记忆和传递型的学习,甚至能有多达89%的提升)。而且图片更好懂。
把文字放在相关图片内部或周围,而不是放在图片下面或者另一页上,学习者的能力能得到多达两倍的提高,从而能更好地解决有关问题。
采用一种针对个人的谈话风格。最新的研究表明,如果学习过程中采用一种第一人称的交谈方式直接向读者讲述内容,而不是用一种干巴巴的语调介绍,学生在学习之后的考试中成绩会提高40%。应当讲故事,而不是做报告。要用通俗的语言。另外不要太严肃。如果你面对着这样两个人,一个是你在聚会上结识的很有意思的朋友,另一个人只是喋喋不休地对你说教,在这两个人中,你会更注意哪一个?
让学习的人想得更深。换句话说,除非你很积极地让神经元活动起来,否则你的大脑里什么也不会发生。必须引起读者的好奇,促进、要求并鼓励读者去解决问题、得出结论、产生新的知识。为此,需要发出挑战,留下练习题和拓宽思路的问题,并要求读者完成一些实践活动,让左右脑都开动起来,而且要利用多种思维。
引起读者的注意,而且要让他们一直保持注意。我们可能都有过这样的体验,“我真的想把这个学会,不过看过一页后实在是昏昏欲睡”。你的大脑注意的是那些不一般、有意思、有些奇怪、抢眼的、意料之外的东西。学习一项有难度的新技术并不一定枯燥。如果学习过程不乏味,你的大脑很快就能学会。
影响读者的情绪。现在我们知道了,记忆能力很大程度上取决于所记的内容对我们的情绪有怎样的影响。如果是你关心的东西,就肯定记得住。如果让你感受到了什么,这些东西就会留在你的脑海中。不过,我们所说的可不是什么关于男孩与狗的伤心故事。这里所说的情绪是惊讶、好奇、觉得有趣、想知道“是什么……”,还有就是自豪感,如果你解决了一个难题,学会了所有人都觉得很难的东西,或者发现你了解的一些知识竟是那些自以为无所不能的傲慢家伙不知道的,此时就会产生一种自豪感。
元认知:有关思考的思考
如果你真的想学,而且想学得更快、更深,就应该注意怎样才能专注起来,考虑自己是怎样思考的,了解你是怎样学习的。
我们大多数人成长过程中可能都没有上过有关元认知或学习理论的课程。我们想学习,但是很少有人教我们怎么学习。
不过,我们可以做一个假设,如果你手上有这本书,说明你确实想学习如何用C#构建程序,而且可能不想花太多时间。如果你想把这本书中读到的知识真正用起来,就需要记住你读到的所有内容。为此,必须理解这些内容。要想最大程度地利用这本书或任何一本书,或者掌握学习经验,就要让你的大脑负起责来,要求它记住这些内容。
怎么做到呢?技巧就在于要让你的大脑认为你学习的新东西确实很重要,对你的生活有很大影响。就像老虎出现在面前一样重要。如若不然,你将陷入旷日持久的拉锯战中,虽然你很想记住所学的新内容,但是你的大脑却会竭尽全力地把它们拒之门外。
那么究竟怎样才能让你的大脑把C#看做是一只饥饿的老虎呢?
这有两条路,一条比较慢,很乏味。另一条路不仅更快,还更有效。慢方法就是大量地重复。你肯定知道,如果反反复复地看到同一个东西,即便再没有意思,你也能学会并记住。如果有足够的重复,你的大脑就会说,“尽管看上去好像不重要,不过,既然他这样一而再、再而三地看同一个东西,所以我觉得这应该是重要的。”
更快的方法是尽一切可能让大脑活动起来,特别是完成不同类型的大脑活动。如何做到这一点呢?上一页列出的学习原则就是一些主要的做法,而且已经证实,它们确实可以帮助你的大脑全力以。
例如,研究表明,把文字放在所描述的图片的中间(而不是放在这一页别的地方,比如作为标题,或者放在正文中),这样会让你的大脑更多地考虑这些文字与图片之间有什么关系,这就会让更多的神经元点火。更多的神经元点火 = 你的大脑更有可能认为这些内容值得关注,很可能需要记下。
谈话式风格也很有帮助,当人们意识到自己在与“别人”交谈时,往往会更专心,这是因为他们总想跟上谈话的思路,并能适当发言。让人惊奇的是,大脑并不关心“谈话”的对象究竟是谁,即使你只是与一本书“交谈”,它也不会在意!另一方面,如果写作风格很正统、干巴巴的,你的大脑就会觉得,这就像坐在一群人当中被动地听人做报告一样,很没意思,所以不必在意对方说的是什么,没必要保持清醒。
不过,图片和谈话式风格还只是开始,我们能做的还有很多。
我们是这么做的
我们用了很多图,因为你的大脑更能接受看得到的东西,而不是纯文字。对你的大脑来说,一幅图抵千言。如果既有文字又有图片,我们会把文字放在图片当中,因为文字处在它描述的图片中间时,大脑的工作更有效,倘若把这些描述文字作为标题,或者“淹没”在其他地方的大段文字中,就达不到这种效果了。
我们采用了重复手法,会用不同方式,采用不同的媒体类型,运用多种思维方式来介绍同一个东西,目的是让这个内容留在你的大脑中的多个区域。
我们会用你想不到的方式运用概念和图片,因为你的大脑喜欢新鲜感。在使用这些图和概念时,至少会含着一些情绪因素,因为如果能产生情绪反应,你的大脑就会更为关注,这会让你感觉这些东西更需要记住,即使这种感觉可能只是有点幽默,让人奇怪或者比较感兴趣而已。
我们采用了一种针对个人的交谈式风格,因为当你的大脑认为你在参与一个会谈而不是被动地听一场演示汇报时,它会更加关注。即使你实际上在读一本书,也就是在与书“交谈”,而不是真正与人交谈,这对你的大脑来说并没有什么区别。
在这本书里,我们加入了几十个实践活动,因为与单纯的阅读相比,如果能实际做点什么,你的大脑会更乐于学习,也更愿意记住。这些填字游戏和练习都是我们精心设计的,有一定的难度,但是确实都能做出来,因为这是大多数人希望的。
我们采用了多种学习方式,因为尽管你可能想循序渐进地学习,但是其他人可能希望先对整体有一个全面的认识,另外可能还有人只想看一个例子。不过,不管你想怎么学,将同样的内容用多种方式来表述,这对每一个人都会有好处。
这里的内容会让你的左右脑都开动起来,因为你的大脑参与得越多,你就越有可能学会并记住,而且集中注意力的时间也更长。如果只有一半大脑在工作,通常意味着另一半有机会休息,这样你就能更有效率地学习更长时间。
我们会讲故事,布置练习,从多个不同的角度来看同一个问题,这是因为,如果要求大脑做一些评价和判断,它就能更深入地学习。
我们会通过一些练习提出挑战,还会问一些问题,这些问题往往没有一个简单的答案,因为让大脑真正做点事情时,它能更好地学会并记住。想想看,如果只是在体育馆里看着别人流汗,这对于保持你自己的体形肯定不会有什么帮助,正所谓临渊羡鱼,不如退而结网。不过另一方面,我们会竭尽所能不让你钻牛角尖,而是把功夫用在正确的方向上。也就是说,你不会花太多时间来搞定一个难懂的例子,也不会花太多时间去弄明白一段艰涩难懂、通篇行话的文字,我们的描述也不会太过简洁而让人无从下手。
我们用了拟人手法。在故事中,在例子中,还有在图中,你都会看到“人”的出现,这是因为你本身是一个人。如果和人打交道,相对于某个东西,你的大脑会更为关注。
下面是你可以做的:让你的大脑就范
好了,我们该做的已经做了,剩下的就要看你自己的了。下面的提示可以作为一个起点:听一听你的大脑是怎么说的,明确对你来说哪些做法可行,哪些做法没有奏效。要勇于尝试新事物。
慢一点。理解得越多,要死记硬背的就越少。
不要只是看看就行了。停下来,好好想一想。书中提出问题的时候,不要直接去翻答案。想象真的有人在问你这个问题。让大脑思考得更深入,就更有可能学会并记住。
做练习,自己记笔记。
我们留了很多练习,不过如果由我们为你完成这些练习,这与让别人替你训练有什么区别?不要只是坐在那里看着练习发呆。拿出笔来,写一写、画一画。大量研究证明,学习过程中如果能实际动动手,这将改进你的学习。
阅读“没有傻问题”(There are no DumbQuestions)部分。
顾名思义,这些问题不是可有可无的旁注,它们绝对是核心内容的一部分!千万不要跳过去不看。
上床睡觉之前不要再看别的书,至少不要看其他有难度的东西。
学习中有一部分是在你合上书之后完成的(特别是转换为长期记忆)。你的大脑也需要有自己的时间来做更多处理。如果在这段处理时间内你又往大脑里灌输了新的知识,你刚才学的一些东西就会丢掉。
要喝水,而且要多喝水。
能提供充足的液体,你的大脑才能有最佳表现。如果缺水(可能在你感觉到口渴之前就已经缺水了),认知能力就会下降。
讲出来,而且要大声讲出来。
说话可以刺激大脑的另一部分。如果你想搞懂什么,或者想更牢固地记住它,就大声地说出来。更好的办法是,大声地解释给别人听。这样你会学得更快,而且与光看不说相比,可能会有以前不曾有的新发现。
听听你的大脑怎么说。
注意一下你的大脑是不是负荷太重了。如果发现自己开始浮光掠影地翻看,或者刚看的东西就忘记了,这说明你该休息一会了。达到某个临界点时,如果还是一味地向大脑里塞,这对于加快学习速度根本没有帮助,甚至还可能影响正常的学习进程。
要有点感觉。
你的大脑需要知道这是很重要的东西。要真正融入到书中的故事里。为书里的照片加上你自己的图题。你可能觉得一个笑话很憋脚,但这总比完全无动于衷要好。
编写大量软件!
要学好C#,没有别的办法,只能通过编写大量代码。这正是这本书要做的。编程是一种技能,要想在这方面擅长,只能通过实践。我们会给你提供大量实践的机会:每一章都留有练习,会提出问题让你解决。不要跳过这些练习,很多知识都是在完成练习的过程中学到的。如果你实在做不出来,看看答案也无妨!我们为每个练习都提供了答案,这么做有一个原因:我们可能很容易被一些小问题卡住,无法进行下去。不过在看答案之前,还是要尽力先自己解决问题。另外在看下一部分之前,一定要确实掌握前面的内容。
重要说明
要把这看做是一个学习过程,而不要简单地把它看成是一本参考书。我们在安排内容的时候有意做了一些删减,如果有些部分可能妨碍有关内容的学习,这些部分都被我们毫不留情地删除了。另外,第一次看这本书时,要从第一页从头看起,因为书中后面的部分会假定你已经看过而且学会了前面的内容。
书里的实践活动不是可有可无的。
这里的填字游戏和实践活动不是可有可无的装饰。它们也是这本书核心内容的一部分。其中有些练习和活动有助于记忆,有些能帮助你理解,还有一些对于如何应用所学的知识很有帮助。千万不要跳过这些问题。只有池塘谜题不要求一定完成,不过它们会让你的大脑有机会考虑一些复杂的逻辑难题,这绝对是加快学习进程的一种好方法。
我们有意安排了许多重复,这些重复非常重要。
Head First系列的书有一个与众不同的地方,这就是我们希望你真正学会,另外希望在学完这本书之后你能记住学过了什么。大多数参考书都不太重视重复和回顾,但是由于这是一本有关学习的书,你会看到一些概念反复出现很多次。
完成所有练习!
写这本书时,我们做了一个重要的假设,认为你确实想学习如何用C#编程。所以我们认为你希望马上开始,深入剖析代码。我们在每一章中都留有练习,提供了大量机会让你练习技能。其中一些练习会特别标上“动手做!”。如果看到这个标志,这说明我们会带着你一步步地解决一个特定问题。不过如果看到“练习”标志(一双跑鞋),这意味着这个问题的很大一部分都将留给你来解决,不过我们也会给出我们自己的答案。不要害怕看答案,这不是作弊!不过,如果先尽力自行解决问题,你学到的会更多。
除了本书的其余代码,我们还提供了所有练习答案的源代码。所有代码都可以在我们的GitHub页面找到https://github.com/head-first-csharp/fourth-edition。
“Brain Power(头脑风暴)”练习没有答案。
有一些头脑风暴练习并没有正确答案,对于另外一些练习,会让你确定你的答案是否正确,以及在什么情况下正确,这也是学习过程的一部分。一些头脑风暴练习会给出提示,为你指出正确的方向。
面向C# 8.0、Visual Studio 2019和Visual Studio 2019 for Mac 。
这本书的目的就是要帮助你学习C#。开发和维护C#的Microsoft团队会不断发布这个语言的更新。
出版这本书时的当前版本是C# 8.0。这本书中相当依赖Visual Studio,这是Microsoft的集成开发环境 (IDE),这会作为我们学习、讲授和探索C#的一个工具。这本书中的截屏图都是用本书出版时的最新版本(Visual Studio 2019和Visual Studio 2019 for Mac)得到的。我们会在第1章介绍如何安装Visual Studio。关于如何安装Visual Studio for Mac,则在附录“Visual Studio for Mac学习指南”中介绍。
我们即将迎来C# 9.0,这个版本可能在本书出版后不久就会发布,其中会有一些非常棒的新特性!
不过,作为本书核心学习内容的C#特性不会改变,所以即使对于将来的C#版本,这本书仍然适用。维护Visual Studio和Visual Studio for Mac的Microsoft团队会定期发布更新,这些更新基本上不会影响本书中的截屏图。
本书中的Unity实验室部分面向Unity 2020.1,这是这本书出版时的最新Unity版本。我们会在第一个Unity实验室中介绍如何安装Unity。
本书中的所有代码都在开源许可下发布,可以在你自己的项目中使用。可以从我们的GitHub页面下载(https://github.com/head-first-csharp/fourth-edition)。还可以下载我们提供的PDF,以及大量额外的学习资料,其中涵盖了本书没有谈到的一些C#特性,包括最新的一些C#特性。
如何使用这本书中的游戏
在这本书中,你会为很多项目编写代码,其中一些项目是游戏。这么做并不是因为我们喜欢游戏,而是因为游戏是学习和讲授C#的有效工具。原因如下:
61 我们都熟悉游戏。你会学习大量新概念和想法。通过提供你熟悉的东西,这会让学习过程更顺利。
61 游戏更易于解释项目。完成这本书中的任何项目时,首先要了解我们让你构建什么,让人惊讶的是,这可能很困难。使用游戏作为我们要开发的项目时,你能更容易地明确我们的要求,并具体编写代码。
61 写游戏很有趣!如果你觉得有趣,你的大脑就更容易接受新信息,所以加入这些构建游戏的编程项目会让你感觉更轻松。
这本书会大量使用游戏来帮助你学习更一般的C#和编程概念。它们是这本书中很重要的一部分。即使你对游戏开发不感兴趣,也要完成这本书中所有与游戏相关的项目(Unity实验室是可选的,不过还是强烈建议完成这些项目)。
“如果说我看得远,那是因为我站在巨人的肩膀上。”—— 艾萨克·牛顿
你读到的这本书几乎没有错误,它的高质量主要归功于我们卓越的技术审校团队,他们就是让我们站在肩头的巨人们。致审校团队:非常感谢你们为这本书付出的辛勤劳动。非常非常感谢!
Lindsey Bieda是一名软件工程师,住在宾夕法尼亚州匹兹堡市。她的键盘比任何人都多。她不写程序的时候,会和她的猫Dash出去遛弯,喝喝茶。可以在rarlindseysmash.com了解她的项目和文章。
Tatiana Mac是一名独立的美国工程师,她直接与组织合作,构建清晰一致的产品和设计系统。
她相信无障碍、表现性和包容性这三大要素可以从数字和实体角度协作改善我们的社会生态。
从伦理方面来讲,她认为技术专家可以去除排他性的系统,而支持以社区为中心的包容性系统。
Dr. Ashley Godbold是一名程序员、游戏设计师、作家、艺术家、数学家、老师和妈妈。她是一家大型零售商的全职软件工程教练,同时还经营着一家小型独立视频游戏工作室Mouse Potato Games。她是Unity认证讲师,讲授计算机科学、数学和游戏开发方面的大学课程。她编写了《Mastering Unity 2D Game Development(第二版)》和《Mastering UI Development with Unity》,另外创建了名为《2D Game Programming in Unity》和《Getting Started with Unity 2D Game Development》的视频课程。
衷心感谢Lisa Kellner,这是她为我们审校的第12本书,非常感谢!
还要特别感谢Joe Albahari和Jon Skeet,感谢你们非凡的技术指导和对第一版仔细全面的审查,正是在此基础上,这些年来这本书才取得了这样的成功。你们的努力让我们获益良多,实际上,甚至当时我们都没有意识到这一点。
O’Reilly在线学习
40多年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。

目录

目录(概览)
引言 xxix
1 开始使用C#:快速构建酷炫应用! 1
2 深入C#:语句、类和代码 49
Unity实验室1:用Unity探索C# 87
3 对象……面向对象!让代码有意义 103
4 类型和引用:得到引用 155
Unity实验室2:为Unity编写C#代码 213
5 封装:私有……保护你的隐私 227
6 继承:对象的家族树 273
Unity实验室3:GameObject实例 343
7 接口、强制转换和“is”:让类信守承诺 355
8 枚举和集合:组织你的数据 405
Unity实验室4:用户界面 453
9 LINQ和lambda:掌控你的数据 467
10 读写文件:为我保存最后一个字节! 529
Unity实验室5:光线投射 577
11 神奇队长:对象之死 587
12 异常处理:救火已经过时了 623
Unity实验室6:场景导航 651
可下载练习:动物配对争霸赛 661
附录i Visual Studio for Mac学习指南 663
附录ii 编码套路:面向高级和/或急性子读者的学习指南 725
索引 729

短评

很好的书,之前买过第二版,这次最新版的IDE换成了vs2019,并且添加了一下Unity2020版的讲解,非常推荐新手学习

2022-04-02 11:15:14

产品特色