深入理解C# 第3版(中文版).pdf

所需积分/C币:18 2017-08-15 00:44:46 16.76MB PDF
收藏 收藏 1
举报

深入理解C# 第3版(中文版).pdf
本关于C#的杰作。 Kirill Osenkov,微软C排团队 如果你想精通C#,那么本书是必读之作。 Tyson S Maxwell, Raytheon資深软件工程师 我们打赌这是最好的C#4图书。 Nikander Bruggeman和 Margriet Bruggeman,Lois& Clark IT Serivces的NET顾问 对C#4的独到见解实用且引人入胜。 — Joe albahari, LINQPad and C#40 in a nutshell的作者 我所读过的最好的c#书籍之一。 aleksey Nudelman, C# Computing llcajcEo 所有专业的C并开发者都应该阅读的书。 Stuart caborn, BNP Paribas资深开发者 c#所有主要版本中语言更新方面高度集中的、专家级的资源。对于所有想掌握C语言最新 动态的专业开发人员来说,本书必不可少 Sean Reilly, Point2 Technologies的程序员/分析师 为什么要一遍又一遍地阅读基础知识?Jon关注的是有嚼劲儿的新东西 Keith hill, Agilent Technologies的软件架构师 所有你还没意识到需要掌握的C#知识。 微软资深软件开发工程师 世上有两类钢琴家。 类钢琴家弹琴并不是因为他们喜欢,而是因为父母强迫他们上钢琴课。另一类钢琴家弹琴 是因为他们喜欢音乐,想创作音乐。他们不需要被强迫,相反,他们陶醉其中,时常忘记什么时 候要停下来。 后一类人中,有人是把弹钢琴当作一种爱好。而有人则是为了生活,因此更需要投入、技巧 和天赋。他们有一定的灵活性来选择弹奏哪些音乐流派和风格,不过这些选择主要还是由雇主的 需要或者听众的国味来决定的。 后一类人中,有人主要就是为了钱,但也有一些专业人士即便没有报酬,也愿意在公共场合 弹奏钢琴。他们喜欢运用自己的技巧和天赋为别人演奏音乐。在这个过程中,他们能找到许多乐 趣。如果同时还有报酬,当然更是锦上添花。 后一类人中,有人是自学成材的,他们演奏乐曲是不看谱的。这些人有极高的天赋和能力, 但除非通过音乐本身,否则无法向别人传递那种直观的感受。还有一些人无论在理论还是实践上 都经过了正统的训练,他们能清楚地理解作曲家是用什么手法得到预期的情绪效果,并相应地改 进自己的演绎手法。 后一类人中,有人从来没有打开钢琴看它的内部构造。还有一些人则对钢琴的发声原理好奇 不已,最后发现是由于杠杆装置和绞盘在音锤敲击琴弦前的瞬间,牵引制音器的擒纵器,他们为 弄明白由5000-10000个运动机件组成的这个乐器装置而感到高兴和自豪。 后一类人中,有人会对自己的手艺和成就心满意足,对它们带来的心灵上的偷悦和经济上的 收入感到非常满意。但是,还有一些人不仅仅是艺术家、理论家和技师,他们会抽时间以导师的 身份,将那些知识传授给其他人。 我不知道 Jon skee是哪一类钢琴家。但是,我与这位微软c#MVP有多年的电子邮件交流 并经常看他的博客。我本人至少3遍逐字读完他的这本书,我清楚地知道Jon是后一种软件开发者: 热情、博学、天资极高、有好奇心以及善于分析——是其他人的好老师。 C是一种极为实用和快速发展的语言。通过添加查询能力、更丰富的类型推断、精简的匿名 函数语法,等等,一种全新风格的编程语言已出现在我们的面前。与此同时,它代表的仍然是一 种静态类型的、面向组件的开发方式,C#取得成功的立足之本没有变。 许多新元索会让人有矛盾的感觉。一方面,它们会显得比较“旧”( Lambda表达式可以追溯 到20世纪上半叶计算机科学奠基的年代)。与此同时,对于那些习惯了现代面向对象编程的开发 2序 者,它们又可能显得太新和太不熟悉 Jon掌控了一切。对于需要理解C#最新版本“是什么”和“怎么做”的专业开发者,本书是 理想的选择。此外,如果开发者还探索语言为什么要这样设计,从而加深他们对语言的理解,那 么本书更是独一无二的。 为了利用语言提供的所有新能力,需要以全新的方式思考数据、函数以及它们之间的关系 这有点儿像经过多年的古典乐训练之后,开始尝试演奏爵士乐—或者相反。不管怎样,我期待 下一代C#序员能够“谱写”出优秀的乐章。祝你“谱曲”愉快,并感谢你选用了C#这个“主调”。 Eric Lippert Coverity CH分析架构师 哦,天哪。在撰写这篇前言时,我打开了第2版的前言,第一句话就是感觉距离撰写第版的 前言已经过去很长时间。对于现在来说,第2版是个遥远的记忆,而第1版则恍若隔世。我不知道 是因为世界变化快,还是我不明白(记性差),但不管从哪方面来说,都值得静下来思考。 从第1版甚至是第2版到现在,发展格局已经发生了翻天覆地的变化。这里面有很多原因,而 移动设备的崛起是最显而易见的因素。但很多挑战依旧没有改变。编写正确的国际化应用程序依 然很难。在所有情况下优雅地处理错误依然很难。编写正确的多线程应用程序也依然很难,尽管 多年来语言和库的改进已经大大地简化了这个任务。 最重要的是,在这篇前言的背景下,我认为开发人员对语言的掌握即使到了能够确定语言行 为的程度,也仍需要了解他们正使用的这种语言。他们也许十分了解每个用到的API,甚至了解 一些不经常使用的细枝末节,但语言的核心应该是开发人员忠实的朋友,开发人员可以依靠它 们按可预测的方式编写代码。 除了你所敲下的语言的字母,我相信理解它的精髓会有更大的好处。也许有时不管怎么努力 你都气得想砸键盘,但如果按照语言设计者的意图来组织代码,将获得前所未有的愉快体验。 ①我要说明:我对c#中的不安全代码和指针知之甚少。我完全不需要弄清楚它们 本书封面上的插图的标题是“音乐家”。插图来自一本土耳其奥斯曼帝国的服饰画册,由伦 敦老邦德街的 William Miller于1802年月1日出版。画册的扉页已经丢失,因此我们很难推断准确 的创作时间。此书的目录同时使用英语和法语标识插图,每张图片都有创作它的两位艺术家的名 字,他们一定会为自已的作品出现在两百年后的一本计算机编程类图书的封面上而倍感惊讶。 Manning出版社的一个编辑在位于曼哈顿西26街“ Garage”的古董跳蚤市场买到了这本画册。 卖主是住在土耳其安卡拉的一个美国人,交易时间是在那天他准备收摊的时候。这位编辑没带够 买这本画册所需的现金,并且卖主礼貌地拒绝了他使用信用卡和支票。卖主当天晚上要飞回安卡 拉,看起来好像没什么希望了。该怎么解决呢?两个人最后通过握手约定的老式君子协议解决了 卖主提议通过银行转账付款,编辑在纸上抄下了收款银行的信息,随后画册就到他手里了。不用 说,第二天我们就把款付给了卖主。我们感谢这位陌生人能如此信任我们的同事。这让我们回忆 起了那个很久以前的美好时代。 我们 Manning人崇尚创造性和主动性,而以两个世纪以前的丰富多彩的地区生活作为图书封 面的素材,使得计算机商业充满趣味性,这本画册中的这张图片,把我们带到了那时的生活中。 你可能认为组织这本书的第3版(新增了两章)十分简单。的确,编写第15章和第16章的“绿 色内容”°非常容易。但真正的工作远不止这些。我需要全书调整语言的细节,检查当年没问题 现在却没道理的部分,还要确保整书能达到读者期望的高标准。幸好,有一群人支持我,让本书 没有走改旗易帜的邪路。 最重要的是,我的家人一如既往地令人赞叹。我妻子Holy本身也是个儿童读物作家,所以 孩子们已经习惯了我俩关起房门赶工期。但他们仍然自始至终都快乐地鼓励我们。Hoy将这 切转化成了动力。她从来没跟我提起过在我撰写第3版的时候,她总共从头到尾写完了多少本书, 对此我只能默默点赞 稍后我会列出正式的审稿人名单,在此我要特别感谢那些订购了第3版预览版的朋友们,他 们指出了我的笔误并提出了修改建议,而且不断地询问什么时候能够正式出版。有一批热切期望 早日看到本书出版的读者,对我来说是莫大的鼓舞 我与 Manning的团队相处得十分融洽,不管是因第1版的出版而熟识的朋友还是新加入者,与 他们一同工作都非常愉快。关于内容的增删, Mike Stephens和 Jeff Bleie给出了极具参考性的意见 他们能把所有事都安排妥当。 Andy Carrol和 Katie tennant别进行了专业的编辑和校对,而且从 来不曾对我的英式作风、吹毛求疵或一些常见困惑表现出任何的不耐烦。出版部门一如既往地在 背后出色地工作着,无论如何,我要对他们表示感谢: Dottie marsico、 Janet Vail、 Marija Tudor 和 Mary Piergies。最后,我要感谢出版人 Marjan Bace,他使我得以撰写本书第3版,并且还就未 来我们可能会采取的合作方式提出了一些有趣的建议。 同行评审也十分重要,这不仅可以规范技术细节,还能平衡并协调书中内容。有时我们得到 的建议仅涉及书的整体架构,而有时则是关于极为具体的细节(这时我都作了相应的修改)无 论哪种形式的反馈,我都非常欢迎。因此要感谢以下审稿人,他们让本书的质量更上一层楼 dy Kirsch、 Bas Pennings、 Bret colloid、 Charles M gross, Dror Helper、 Dustin laine、 Ivan Todorovic、 Jon parish、 Sebastian Martin Aguilar、 Tiaan Geldenhuys和 Timo bredenoor 特别感谢 Stephen Toub和 Stephen Cleary,他们对本书第15章的早期评审非常宝贵。异步是 个特别复杂的主题,要想写得既清楚又准确十分不易。他们的专业建议使这一章的质量有了极大 提升。 ①在大多数版本控制工具中,绿色都代表新增的内容。作者借此来指代新增的两章内容。—译者注 致谢 当然,如果没有C并团队,本书根本不可能存在。他们在语言的设计、实现和测试方面的贡献 无与伦比,我期待他们接下来提出的内容。第2版出版之后, Eric Lippert就离开了C#团队,开始 了新的传奇之旅①。令我万分感激的是,他仍然愿意做第3版的技术评审。还要感谢他为本书第1 版作序,这一版仍然沿用了它。本书自始至终都有提到他的独到见解,如果你没有读过他的博客 文章(hp:/ericlippert.com),那么你真应该读一读。 ① Eric Lippert的博客名称即为代码传奇之旅( Fabulous Adventure in Coding)—译者注 这是一本关于C#2及后续版本的书就是这么简单。关于C#1我几乎没讲什么。至于NET Framework库和CLR(公共语言运行时),我也只是讨论了它们同语言有关的那一部分。我故意如 此,结果就是这本书显然有别于市面上的大多数C#和NET书籍。 假定读者已经具备了一定的C#1相关知识,我就不必再花几百页的篇幅来讲述大多数人都已 经知道的知识。这样就可以有更多的篇幅来深挖C并2、C#3和C#4的细节,这正是我希望你阅读 本书的目的。我写本书第1版时,有些读者对C#2还相当陌生。现在,几乎所有的C拼开发人员用 过了C#2中引人的特性,但这一版仍然保留了对C并2的介绍,因为它是后续内容的基础。 目标读者 本书面向对C#有所了解的开发人员。最起码要十分了解C#1,对后续版本略知二即可。能 达到这个要求的读者已经不多了,但我相信仍有很多开发者会通过深入分析C2和C#3而受益 即使他们已经用了一段时间。而且,有很多开发人员根本没有用过C样4和C并5。 如果你对C#一无所知,那本书可能不适合你阅读。你可以通过查找你不熟悉的部分来苦读本 书,但这并不是有效的学习方法。你最好选另外一本书,然后循序渐进地将本书加入到你的书单 中。有很多从头介绍C#的图书,这些书的风格千差万别。C# in a nutshell列( O'Reilly)一直都 是这方面的好书, essential c#50( addison- Wesley Professional)也是不错的选择。 我不是说阅读本书你就会变成一位出色的编码者( coder)除了知道你正用到的语法,在软 件工程中还有许多东西要学。我会在书中适时提供一些指导,但在开发过程中,我们不得不承认, 在很多地方,基本上都是要依赖于某种直觉的。我想说的是,如果你阅读并理解了这本书,那么 在使用C时会感觉更加顺手,而且会更加自然地凭自己的直觉行事,而不会有太多的犹豫。这不 是说因为用到语言的一些“生僻”的功能,你写出来的代码别人便看不懂了。相反,我是说你将 拥有强大的自信,知道自己有哪些选择,并知道C语言本身在鼓励你选择哪条路走下去。 路线图 本书的结构很简单,共有5个部分和3个附录。第一部分相当于简介,包括对c#1重点主题的 回顾,这些主题对于理解C样的后续版本非常重要,而且经常被人误解。第二部分讲述了C样2的新 特性。第三部分讲述了C井3的新特性,等等

...展开详情
试读 127P 深入理解C# 第3版(中文版).pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img
    DQolXS

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    深入理解C# 第3版(中文版).pdf 18积分/C币 立即下载
    1/127
    深入理解C# 第3版(中文版).pdf第1页
    深入理解C# 第3版(中文版).pdf第2页
    深入理解C# 第3版(中文版).pdf第3页
    深入理解C# 第3版(中文版).pdf第4页
    深入理解C# 第3版(中文版).pdf第5页
    深入理解C# 第3版(中文版).pdf第6页
    深入理解C# 第3版(中文版).pdf第7页
    深入理解C# 第3版(中文版).pdf第8页
    深入理解C# 第3版(中文版).pdf第9页
    深入理解C# 第3版(中文版).pdf第10页
    深入理解C# 第3版(中文版).pdf第11页
    深入理解C# 第3版(中文版).pdf第12页
    深入理解C# 第3版(中文版).pdf第13页
    深入理解C# 第3版(中文版).pdf第14页
    深入理解C# 第3版(中文版).pdf第15页
    深入理解C# 第3版(中文版).pdf第16页
    深入理解C# 第3版(中文版).pdf第17页
    深入理解C# 第3版(中文版).pdf第18页
    深入理解C# 第3版(中文版).pdf第19页
    深入理解C# 第3版(中文版).pdf第20页

    试读已结束,剩余107页未读...

    18积分/C币 立即下载 >