深入理解C#(第2版)

Jon Skeet

出版时间

2012-01-01

ISBN

9787115269249

评分

★★★★★
书籍介绍

《深入理解C#(第2版)》是C#领域不可多得的经典著作。作者Jon Skeet在详尽地展示C#各个知识点的同时,更注重从现象中挖掘本质。本书深入探索了C#的核心概念和经典特性,并将这些特性融入到代码中,让读者能够真正领会到C#之“深入”与“精妙”。在第1版的基础上,书中新增了C# 4的新特性,如动态类型、命名实参和可选参数等,这些特性将C#语言提升到了一个新的层次。

《深入理解C#(第2版)》适合中高级.NET开发人员阅读。

Jon Skeet Google软件工程师,微软资深C# MVP,拥有近10年的C#项目开发经验。他是C#社区和新闻组中非常活跃的技术专家,回答了数以万计的C#和.NET相关问题。他还在个人网站上撰写文 章,阐述C#和.NET最难理解的问题。他还著有另一本畅销书Groovy in Action。

AI导读
核心看点
  • 深入剖析C#语言特性,挖掘语法糖背后的本质原理
  • 覆盖C# 1至4版本演进,详解泛型、LINQ及动态类型
  • 侧重语言本身而非框架,帮助开发者写出更优雅的代码
适合谁读
  • 具备一定基础的中高级.NET开发人员
  • 希望深入理解C#底层机制与演进历史的程序员
  • 追求代码质量,渴望提升编程内功的开发者
读前提醒
  • 内容深度较大,需结合动手实践以加深理解
  • 部分章节行文略显啰嗦,建议抓重点阅读
  • 不必强求掌握所有细节,理解核心概念即可
读者共识
  • C#领域不可多得的经典著作,干货满满
  • 对冷门特性的应用场景讲解尤为出色
  • 虽部分表述冗长,但仍是进阶必读之作

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "当有多个类型参数时,可以用一个适合整个类型含意的单词来分隔它们,例如,我会使用dictionary of string to int来强调映射的部分,而不会使用tuple of string and int。"
  • "When there are multiple type parameters, I find it makes sense to separate them with a word appropriate to the meaning of the overall type—so I’d talk about a “dictionary of string to int” in order to emphasize the mapping aspect, but a “tuple of string and int.”"
  • "...如果仅仅是接受目标的实现,而不去明确定义从哪里开始,那么一切就没有问题,至少在出错前没什么问题。 如果想弄明白究竟发生了什么才能达到预期效果,事情就变得有点棘手了。既然本书挂着“深入理解”的名头,那么我就假设你想知道这些细节。最终,我保证你在用 await 时会更加自信,并且更加高效。 即便如此,我还是建议各位根据自身情况,在两个不同级别发展阅读异步代码的能力。如果无须理解这里列出的单独步骤,就让它们随风而去好了。你可以像阅读同步代码那样去阅读异步代码,只需留意代码异步等待某些操作完成时的位置即可。然后,当遇到代码不按预期执行这种棘手问题时,可深入研究一下哪些地方涉及了哪些线程,以及调用"
  • "那么,要如何实现GetEnumerator方法呢?首先要知道,我们需要在某个地方存储某个状态。迭代器模式的一个重要方面就是,不用一次返回所有数据——调用代码一次只需获取一个元素。这意味着我们需要确定访问到了数组中的哪个位置。在了解C# 2编译器为我们所做的事情时,迭代器的这种状态特质十分重要,因此,要密切关注本例中的状态。 那么,这个状态值要保存在哪里呢?假设我们尝试把它放在IterationSample类自身里面,让它既实现IEnumerator接口又实现IEnumerable接口。乍一看,这似乎是个好主意—— 毕竟,我们是将数据保存在正确的位置,其中也包括了起点。GetEnumerator"
  • "我是那种为了在圣诞节到来那一刻尽早打开礼物,宁愿在平安夜熬到凌晨不睡的人。同样,我(这种迫不及待的人)也不可能在向大家展示简洁的C# 2解决方法之前,浪费过多的时间。"
  • "这个结果中有几个重要的事情需要牢记: 在第一次调用MoveNext之前,CreateEnumerable中的代码不会被调用; 所有工作在调用MoveNext时就完成了,获取Current的值不会执行任何代码; 在yield return的位置,代码就停止执行,在下一次调用MoveNext时又继续执行; 在一个方法中的不同地方可以编写多个yield return语句; 代码不会在后的yield return处结束,而是通过返回false的MoveNext调用来结束方法的执行。 第一点尤为重要,因为它意味着如果在方法调用时需要立即执行代码,就不能使用迭代器块, 如参数验证。如果你将普通检查放入用迭"
  • "如果input和常量表达式都是整型表达式,那么会使用==来进行比较;如果是其他类型,则使用静态方法object.Equals进行比较。"
作者简介
Jon Skeet Google软件工程师,微软资深C# MVP,拥有近10年的C#项目开发经验。他是C#社区和新闻组中非常活跃的技术专家,回答了数以万计的C#和.NET相关问题。他还在个人网站上撰写文 章,阐述C#和.NET最难理解的问题。他还著有另一本畅销书Groovy in Action。
目录
第一部分 基础知识
第1 章 C#开发的进化史   2
1.1 从简单的数据类型开始   3
1.1.1 C# 1 中定义的产品类型   3
1.1.2 C# 2 中的强类型集合  4

显示全部
用户评论
一般都是临时用下C#做GUI,看了这本书发现C#真高端,都想认真学习下了
C#4必读经典,主要讲解C#语言特性
看了前五章,内容还可以,表述太啰嗦
毕业后看过的唯二的专业向书籍之一,反复看过几次,侧重语言特性,感叹作者的简洁优雅,莫名觉得作者是一个温和的胖子,关于封面图的说明很有意思,简直有诗意。后来直接谷歌了吧,这书也就不再问津,及今看到,蒙尘也久,恍如旧梦。一记。
深入探讨C#的语法.
语言细节其实挺无聊的
补录
需要相当的编程经验才能顺利读完
C#特性这一点没说到,其他都蛮好的,还有C#的语法糖确实太多了吧
收藏