深入解析C#精彩书评
本书详细信息页面地址:http://www.china-pub.com/196689
这是一本纯粹的C#语言的书,和.NET Framework 关系不大,和CLR 关系不大。正如本书的前言作者所说,作者本身的意图就是讲解C#语言,使每个喜爱C#的程序员能够得心应手的工作,最后这本书的定位就是一本C#语言从1.0-3.0 的专著,并且书中很明显的给出了C#1.0-3.0 的代码风格的转变。
这本书我从china-pub 预订开始就开始关注,因为当时看了本书的目录,就发现这本书绝对是一本进阶书籍,绝对是每个希望提高自身对C#语言掌握,提高使用C#做设计的读者必须要阅读的一本书,当china-pub 放出这本书的第一章和第二章样张的时候,我立刻就下载阅读,第一二章刚好是本书的第一部分,也是本书最浅显的基础知识部分。但是非常难得的是,这本书从第一章就已经吸引了我,在第一章就没有拖泥带水,没有什么if…else,没有while,没有C#的原生类型结构讲解,直截了当的进入到实战,先给出C#1.0 版本的一个例子,接下来是2.0 时对这个例子的一些编程风格的转变,并且给出C#2.0 对1.0 的提升的优势,接下来就是在2.0 的基础上进入3.0 语法阶段,从第一个例子立刻可以了解到C#从1.0-3.0 语法转变,立刻进入实战状态。在第一章的最后,回顾了一下C#和.NET Framework的诞生历史,给了一个对照表格,帮大家理清一些历史,不过这部分意思不大,我更加关心的是如何使用C#实战,因为C#这个语言一直在考虑程序员的感受,一切都为程序员着想,配合强大的Visual Studio IDE,使用C#开发一直以来都是一种愉悦的享受。
本书第二章一开始就复习了从C#1.0 中最重要的几个基本技术,而第一个技术则是委托,作者使用了4 句话就清晰易懂的讲解了如何让委托做事,这对于一些初学C#,觉得委托难以理解的开发者来讲,这短短的一节已经可以足够教会你委托是什么,它有什么用。最关键的是在讲解委托的过程中,提到了我在现阶段所有的中文C#书籍中从来没看到的关于委托实例造成内存泄漏的问题,这个虽然我已经在网上一些C# Blog 上看到过了,但是这本书有一个简明的提要,至少会提醒读者,原来C#也会内存泄漏,并且没有让人想到的泄漏内存的会是委托。提到这里,我想对出版社提一下改进意见,本书在讲到一些重要的概念的时候是使用了明显的区别字体对该概念进行区分,而中文版时,使用的印刷字体却区分并不明显,从而导致读者容易忽略这些细节,希望出版社日后在翻译书籍时,能够在重点位置使用更加明显的记号做出标记。
第三章开始进入本书的第二部分,也就是对C#2.0 实战中的一些需要注意的高级语言特性的正确使用的讲解,这一章也是直接就上C#2.0 中对1.1 改进最为显著的泛型,首先回顾了一下泛型基础和泛型在实战中的基本使用方式。最重要的是从3.3 节开始的深化和提高,后面的内容绝对值得每一个C#程序员阅读,讲到了C#2.0 泛型的一些高级特性,并且给了一些实战的代码段,这本书上讲解的泛型知识,我阅读的所有的中文C#书籍上从来都没有深刻的讲解过,绝对不是泛泛而谈,都是一刀见血的直切要害,看的让我大呼过瘾,但是前提是必须要有良好的基本功,否则阅读起来会有一定的困难。本章最后用C#和C++、Java之间的泛型进行了对比,提到了C#泛型的不足之处和相对于Java 泛型的优势,至少对于读者来讲会有一个清晰的对比。
本书第四章是我个人认为全书最不值得阅读的一章,因为这个可空类型在任何一本比较全的C#语言的书中都有一些介绍,而且那些基本的介绍已经足以学会使用该特性了,本书仅仅在这个话题上增加了一些经验之谈,而最有价值的则是4.4 小节,这个小节根据作者的经验提出了可空类型的新奇用法(虽然说是新奇用法,实际上是经验之谈),而这部分内容对于项目实战来讲,还是有意义的。
第五章主要是回顾了C# 1.0 中的委托,到C# 2.0 后对委托的改进,并且在本章为大家打好委托的基础,使大家进入到C# 3.0 的Lambda 时能够有良好的基础去理解Lambda 表达式,这章的铺垫作用很好,并且在最后一个小节时,讲解了一般的C#程序员没有去深入理解的闭包捕捉变量的作用域问题。
第六章回顾了C# 1.0-C# 2.0 的迭代器的演变,从C# 1.0 编写复杂代码实现迭代器,到C# 2.0 新增yield return 关键字,交给编译器内部生成迭代器代码,这些内容都非常基础,是每个C#程序员都应该已经掌握的内容,直到6.3 节开始实战,举了几个畅快凌厉的例子,引出本章最后一个小节迭代器的新模式,也就是未来的库中可能会引进的新的实现模式,看后深感自己对迭代器的认识太少,非常痛快。
第七章则是对C# 2.0 语法中新增的其他特性进行了一次统一的讲解,每个新特性篇幅较短,但是都非常清晰的讲解了这些特性,相信读者也能从中学习到一些新的经验和认识。
第八章开始对C# 3.0 的新特性讲解,目的是为了引导出后面的C#语言最具革新的LINQ,而前面的一切都是为了后面的LINQ 打牢基础,本章主要是讲解一些3.0 中最基本的自动实现属性,隐式类型,对象和集合初始化器,隐式类型数组和匿名类型,其实这些技术每个紧跟微软.NET Framework 更新的程序员应该都已经非常了解了,每本基础的C#书籍对这些基础讲解的很清晰了,对本章技术点比较熟悉的读者完全可以跳过本章。第九章开始是本书的高潮部分了,这部分是讲解C# 3.0 中的新特性,而难度也开始逐渐提高,因为毕竟C# 3.0 是融合了C# 1.0 的地基,C# 2.0 的提高,到达了函数式编程这一站,而现在由于并行越来越成为主流,而Anders 也早已看到这一点,所以C#的函数式也是必然的发展,并且同时引入了LINQ 这个极其重要的技术,为下一代PLINQ 打下坚实基础,并且如果是C#爱好者的话,一定早已熟悉了C#3.0 的新特性,但是本章的难度绝对让一个中级的程序员感到不会白白花费时间在这一章,这一章的技术要点都是非常基础而又非常重要的,如果基础够坚实,我相信其他读者也会在本章中学到如何使用C# 3.0 做设计,而本章难度最大的则是在最后一个小节,如果读者有C++语言背景的话,对本节的理解将会容易很多,因为C++的泛型更加强大和复杂。
第十章算是LINQ 基础的前沿最后一章,本章介绍扩展方法,首先本章介绍了一些使用扩展方法的小技巧,接下来进入到扩展方法的最具有意义的部分,也是LINQ 的本质意义,就是对数据进行流式的操作,比如
var collection = Enumerable.Range(0, 10)
.Where(x => x % 2 != 0)
.Reverse();
这样的形式必然比:
var collection = Enumerable.Reverse(
(Enumerable.Where(
(Enumerable.Range(0, 10),
x => x % 2 != 0));
这样的形式顺眼和易于理解的多。上面的代码完全是按照人的思维进行的,而后者则需要人使用反向思维模式对代码进行阅读。最后本章提醒各位读者,使用扩展方法并不是所有的静态助手类都应该成为扩展方法,而是应该理智的使用,写扩展方法始终应该是一种有意识的决定,而不是习惯。
第十一章开始介绍本书的重头戏LINQ,本章也是全书难度较大的章节,有了前面的基础作为铺垫,那么理解本章是比较容易了,这章也是LINQ 中最应该掌握的LINQ to Object。当然仍然是本书的风格,从最基本的语法特性讲起,一直逐渐复杂直到讲解完所有的LINQ toObject 语法特性,当然这些语法特性能够完全用在后面的LINQ to SQL、LINQ to XML、LINQ toDataSet……。
第十二章非常自然的将LINQ 的其他提供器一起讲解了,由于有了十一章的学习,那么这章只是对其他提供器进行介绍,按部就班的学习即可了,同样我也认同作者,学习LINQ,请阅读LINQ 中最优秀的一部书《LINQ In Action》,这本书已经由人民邮电出版社图灵程序设计丛书引进翻译,并且翻译质量也很高,这本书也是我个人认为学习LINQ 最好的一本书。
第十三章是本书的总结性的章节,总体来看本书是一本很优秀的C#语言特性的学习书籍,绝对值得阅读,说了本书这么多优点,也说说这本书的缺点,这本书的缺点我个人认为就是技巧方面的知识点过少了,以作者对C#语言的掌握程度来看,他如果能在书中加入更多的使用C#进行编程设计的技巧,那么本书就可堪称完美。无论如何这本书都是每一个中级C#程序员向更高层次进阶时必读的一本书,我个人强烈期待本书第二版,希望第二版能延续本书的内涵,对C#4.0 来一次深层次的讲解。
分享到:
相关推荐
《深入理解C#》是一本深受程序员喜爱的书籍,尤其对于C#初学者来说,它提供了全面且深入的C#语言教程。这本书以其清晰的解释和实用的例子,帮助读者建立起坚实的C#编程基础。以下是对书中核心知识点的详细阐述: 1....
此为深入解析C#的源码 系列书名: 图灵程序设计丛书 作 者: Jon Skeet 译 者: 周靖 朱永光 出版日期: 2010-05 资深C# MVP扛鼎之作 深入解析,探求本源 亚马逊网上书店全五星评价 本书是针对那些想提高...
### 深入解析C# 第二版:关键知识点概览 #### 书籍基本信息与背景介绍 《深入解析C# 第二版》是一本由世界顶级技术专家Jon Skeet撰写的经典著作,该书覆盖了C# 4.0语言的新特性和高级用法。作为C#领域的权威之作,...
### 深入解析C#(第2版)——核心知识点概述 #### 一、书籍基本信息及背景 - **中文名**:深入解析C#(第2版) - **原名**:C# in Depth, 2nd Edition - **作者**:Jon Skeet - **出版日期**:2010年11月 - **出版...
《C#精彩编程200例》汇集了与C#开发相关的200个实例及源代码,每个实例都按实例说明、关键技术、实现过程、扩展学习的顺序进行分析解读。全书主要内容有WinForm窗体开发、文件操作、图形图像及打印、系统及注册表...
本项目是基于C#编程语言开发的一个窗体应用程序,用于解析DBC文件,帮助用户理解和提取DBC文件中的关键信息。 DBC文件的主要作用是存储CAN网络中的信号定义、节点信息、帧结构等数据。在C#中解析DBC文件,通常需要...
《C#本质论 第4版 C#5.0》是由美国知名编程专家米凯利斯等人编著的一本深入解析C#编程语言的权威著作,由人民邮电出版社出版。这本书详细介绍了C#5.0版本的核心特性和编程实践,为开发者提供了全面且深入的理解C#...
[Manning Publications] 深入理解 C# 第3版 英文版 [Manning Publications] C# in Depth 3rd Edition E Book ☆ 出版信息:☆ [作者信息] Jon Skeet [出版机构] Manning Publications [出版日期] 2013年09月...
《深入理解c#:第2版》是c# 领域不可多得的经典著作。作者在详尽地展示c# 各个知识点的同时,更注重从现象中挖掘本质。 经典中的经典哇 本人花钱在淘宝买的,版权问题我就没管了哈。但是本人也没敢独享,发出来有...
在深入体验C#项目开发的过程中,源代码是学习和理解编程思想、设计模式和技术实现的关键。C#作为Microsoft .NET框架的主要编程语言,被广泛应用于桌面应用、Web应用、游戏开发以及移动应用等多个领域。本资源包含了...
根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...
《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....
与此相关的项目定义了用来读取和解析PDF文件的C#类. 为了测试这些类,附带的测试程序PdfFileAnalyzer让你可以去读取一个PDF文件,分析它并展示和保存结果. 程序将PDF文件分割成单独每页的描述,字体,图片和其它...
《深入理解C#》是C#编程领域的一本经典著作,作者Jon Skeet以其深入浅出的讲解方式,为读者揭示了C#语言的诸多精髓。第三版的更新旨在涵盖C#语言的最新特性,包括C# 6.0及更高版本的一些关键改进。源码的提供使得...
本篇文章将深入探讨C#中如何解析和使用Cron表达式。 Cron表达式是由7个子表达式组成的字符串,每个子表达式定义了一个时间域(秒、分、小时、日、月、周几、年),用以描述一个精确的时间周期。例如,“0 30 12 * *...
"JSVerify_C#JS脚本解析_"这个主题涉及到的是将C#语言与JS脚本结合,实现对JS代码的解析、理解和执行。下面我们将详细探讨这一技术知识点。 首先,我们需要理解C#如何解析JS脚本。C#本身并不内置对JS的支持,但可以...
FatExpression公式解析库是一款专为C#开发者设计的软件组件,用于处理和解析数学或业务逻辑公式。这个库不仅提供了C#版本,还包含了Delphi版本,满足不同编程语言环境下的需求。C#版本是作者从Delphi版本手动转换而...
在C#中解析PE文件,主要涉及到对PE文件结构的理解、C#编程技巧以及.NET框架中的元数据处理。本文将深入探讨这些知识点。 首先,了解PE文件结构是解析的基础。PE文件由多个部分组成,包括DOS头、PE头(NT头)、节表...