深入理解C#(第3版)

深入理解C#(第3版)

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
9.0107 评价豆瓣读书
免费试读

作品简介

本书是世界顶级技术专家“十年磨一剑”的经典之作,在C#和.NET领域享有盛誉。与其他泛泛介绍C#的书籍不同,本书深度探究C#的特性,并结合技术发展,引领读者深入C#的时空。作者从语言设计的动机出发,介绍支持这些特性的核心概念。作者将新的语言特性放在C#语言发展的背景之上,用极富实际意义的示例,向读者展示编写代码和设计解决方案的最佳方式。同时作者将多年的C#开发经验与读者分享,读者可咀其精华、免走弯路,使程序设计水平更上一层楼。

本书在第2版的基础上全面调整了C#语言的细节,改写了随着技术的发展已经不再适用的内容,并全面介绍了C# 5新增的大特性——异步,以及两个小特性,延续了读者期望的高标准。

作者简介:

Jon Skeet

谷歌软件工程师,微软资深C# MVP,拥有10余年C#项目开发经验。自2002年以来,他一直是C#社区、新闻组、国际会议和Stack Overflow网站上非常活跃的技术专家,回答了数以万计的C#和.NET相关问题。

译者简介:

姚琪琳

具有多年.NET和Java开发经验,热爱C#,喜欢翻译和阅读。曾翻译过《精通C#(第6版)》、《C#图解教程(第4版)》、《C#与.NET 4高级程序设计(第5版)》等多本经典C#书籍。目前就职于ThoughtWorks。新浪微博:@珧麒麟。

作品目录

  1. 对本书第1版的赞誉
  2. 对第2版的赞誉
  3. 前言
  4. 致谢
  5. 关于本书
  6. 第一部分 基础知识
  7. 第1章 C#开发的进化史
  8. 1.1 从简单的数据类型开始
  9. 1.2排序和过滤
  10. 1.3处理未知数据
  11. 1.4LINQ简介
  12. 1.5COM和动态类型
  13. 1.6 轻松编写异步代码
  14. 1.7 剖析.NET平台
  15. 1.8 怎样写出超炫的代码
  16. 1.9 小结
  17. 第2章 C# 1所搭建的核心基础
  18. 2.1 委托
  19. 2.2 类型系统的特征
  20. 2.3 值类型和引用类型
  21. 2.4 C# 1之外:构建于坚实基础之上的新特性
  22. 2.5 小结
  23. 第二部分 C# 2 :解决C# 1 的问题
  24. 第3章 用泛型实现参数化类型
  25. 3.1 为什么需要泛型
  26. 3.2 日常使用的简单泛型
  27. 3.3 深化与提高
  28. 3.4 高级泛型
  29. 3.5 泛型在C#和其他语言中的限制
  30. 3.6 小结
  31. 第4章 可空类型
  32. 4.1 没有值时怎么办
  33. 4.2 System.Nullable<T>和System.Nullable
  34. 4.3 C# 2为可空类型提供的语法糖
  35. 4.4 可空类型的新奇用法
  36. 4.5 小结
  37. 第5章 进入快速通道的委托
  38. 5.1 向笨拙的委托语法说拜拜
  39. 5.2 方法组转换
  40. 5.3 协变性和逆变性
  41. 5.4 使用匿名方法的内联委托操作
  42. 5.5 匿名方法中的捕获变量
  43. 5.6 小结
  44. 第6章 实现迭代器的捷径
  45. 6.1 C# 1:手写迭代器的痛苦
  46. 6.2 C# 2:利用yield语句简化迭代器
  47. 6.3 真实的迭代器示例
  48. 6.5 小结
  49. 第7章 结束C# 2的讲解: 最后的一些特性
  50. 7.1 分部类型
  51. 7.2 静态类型
  52. 7.3 独立的取值方法/赋值方法属性访问器
  53. 7.4 命名空间别名
  54. 7.5 pragma指令
  55. 7.6 非安全代码中固定大小的缓冲区
  56. 7.7 把内部成员暴露给选定的程序集
  57. 7.8 小结
  58. 第三部分 C# 3 :革新写代码的方式
  59. 第8章 用智能的编译器来防错
  60. 8.1 自动实现的属性
  61. 8.2 隐式类型的局部变量
  62. 8.3 简化的初始化
  63. 8.4 隐式类型的数组
  64. 8.5 匿名类型
  65. 8.6 小结
  66. 第9章 Lambda表达式和表达式树
  67. 9.1 作为委托的Lambda表达式
  68. 9.2 使用List<T>和事件的简单例子
  69. 9.3 表达式树
  70. 9.4 类型推断和重载决策的改变
  71. 9.5 小结
  72. 第10章 扩展方法
  73. 10.1 未引入扩展方法之前的状态
  74. 10.2 扩展方法的语法
  75. 10.3 .NET 3.5中的扩展方法
  76. 10.4 使用思路和原则
  77. 10.5 小结
  78. 第11章 查询表达式和LINQ to Objects
  79. 11.1 LINQ介绍
  80. 11.2 简单的开始:选择元素
  81. 11.3 对序列进行过滤和排序
  82. 11.4 let子句和透明标识符
  83. 11.5 联接
  84. 11.6 分组和延续
  85. 11.7 在查询表达式和点标记之间作出选择
  86. 11.8 小结
  87. 第12章 超越集合的LINQ
  88. 12.1 使用LINQ to SQL查询数据库
  89. 12.2 用IQueryable和IQueryProvider进行转换
  90. 12.3 LINQ友好的API和LINQ to XML
  91. 12.4 用并行LINQ代替LINQ to Objects
  92. 12.5 使用LINQ to Rx反转查询模型
  93. 12.6 扩展LINQ to Objects
  94. 12.7 小结
  95. 第四部分 C# 4 :良好的交互性
  96. 第13章 简化代码的微小修改
  97. 13.1 可选参数和命名实参
  98. 13.2 改善COM互操作性
  99. 13.3 接口和委托的泛型可变性
  100. 13.4 对锁和字段风格的事件的微小改变
  101. 13.5 小结
  102. 第14章 静态语言中的动态绑定
  103. 14.1 何谓、何时、为何、如何
  104. 14.2 关于动态的快速指南
  105. 14.3 动态类型示例
  106. 14.4 幕后原理
  107. 14.5 实现动态行为
  108. 14.6 小结
  109. 第五部分 C# 5:简化的异步编程
  110. 第15章 使用async/await进行异步编程
  111. 15.1 异步函数简介
  112. 15.2 思考异步编程
  113. 15.3 语法和语义
  114. 15.4 异步匿名函数
  115. 15.5 实现细节:编译器转换
  116. 15.6 高效地使用async/await
  117. 15.7 小结
  118. 第16章 C# 5附加特性和结束语
  119. 16.1 foreach循环中捕获变量的变化
  120. 16.2 调用者信息特性
  121. 16.3 结束语
  122. 附录A LINQ标准查询操作符
  123. A.1 聚合
  124. A.2 连接
  125. A.3 转换
  126. A.4 元素操作符
  127. A.5 相等操作
  128. A.6 生成
  129. A.7 分组
  130. A.8 连接
  131. A.9 分部
  132. A.10 投影
  133. A.11 数量
  134. A.12 过滤
  135. A.13 基于集的操作符
  136. A.14 排序
  137. 附录B .NET中的泛型集合
  138. B.1 接口
  139. B.2 列表
  140. B.3 字典
  141. B.4 集
  142. B.5 Queue<T>和Stack<T>
  143. B.6 并行集合(.NET 4)
  144. B.7 只读接口(.NET 4.5)
  145. B.8 小结
  146. 附录C 版本总结
  147. C.1 桌面框架的主版本
  148. C.2 C#语言特性
  149. C.3 框架库的特性
  150. C.4 运行时(CLR)特性
  151. C.5 相关框架
  152. C.6 小结
载入中

热门划线

喜欢这本书的人也喜欢