基本信息
作者: [美] 比尔·瓦格纳(Bill Wagner)
丛书名: Effective系列丛书
出版社:机械工业出版社
ISBN:9787111620716
上架时间:2019-3-18
出版日期:2019 年3月
开本:16开
页码:269
版次:1-1
所属分类:计算机 > 软件与程序设计 > C#
编辑推荐
经典畅销书《Effective C#》的进阶篇,世界知名专家Bill Wagner倾力撰写,针对C# 7.0全面更新
紧贴C#语言的设计理念,既从正面阐释如何编写高效代码,又从反面入手指出容易出错之处,涵盖C#语言的各个方面
More Effective C#
50 Specific Ways to Improve Your C#
Second Edition
More Effective C#
改善C#代码的50个有效方法(原书第2版)
[ 美 ] 比尔 · 瓦格纳(Bill Wagner) 著
爱飞翔 译
内容简介
书籍
计算机书籍
在本书中,世界著名的.NET专家Bill Wagner介绍了用于写出健壮且容易完成的C# 7.0代码的50条中阶至高阶技巧,反映了C#语言及其开发社区的发展,可帮助读者解决每日编程工作中可能遇到的问题。
目录
译者序
前言
第1章 处理各种类型的数据 / 1
第1条:使用属性而不是可直接访问的数据成员 / 1
第2条:尽量采用隐式属性来表示可变的数据 / 7
第3条:尽量把值类型设计成不可变的类型 / 11
第4条:注意值类型与引用类型之间的区别 / 16
第5条:确保 0 可以当成值类型的有效状态使用 / 21
第6条:确保属性能够像数据那样运用 / 25
第7条:用元组来限制类型的作用范围 / 30
第8条:在匿名类型中定义局部函数 / 35
第9条:理解相等的不同概念及它们之间的关系 / 40
第10条:留意GetHashCode()方法的使用陷阱 / 49
第2章 API设计 / 57
第11条:不要在API中提供转换运算符 / 57
第12条:尽量用可选参数来取代方法重载 / 61
第13条:尽量缩减类型的可见范围 / 65
第14条:优先考虑定义并实现接口,而不是继承 / 69
第15条:理解接口方法与虚方法之间的区别 / 77
第16条:用Event模式来实现通知功能 / 82
第17条:不要把类的内部对象通过引用返回给外界 / 87
第18条:优先考虑重写相关的方法,而不是创建事件处理程序 / 91
第19条:不要重载基类中定义的方法 / 94
第20条:了解事件机制为何会提升对象在运行期的耦合程度 / 98
第21条:不要把事件声明成virtual / 100
第22条:尽量把重载方法创建得清晰、简洁而完备 / 106
第23条:让 partial类的构造函数、mutator方法和事件处理程序调用适当的partial方法 / 112
第24条:尽量不要实现ICloneable接口,以便留出更多的设计空间 / 117
第25条:数组类型的参数应该用params加以修饰 / 122
第26条:在迭代器与异步方法中定义局部函数,以便尽早地报错 / 126
第3章 基于任务的异步编程 / 131
第27条:使用异步方法执行异步工作 / 131
第28条:不要编写返回值类型为void的异步方法 / 136
第29条:不要把同步方法与异步方法组合起来使用 / 141
第30条:使用异步方法以避免线程分配和上下文切换 / 146
第31条:避免不必要的上下文编组 / 147
第32条:通过Task对象来安排异步工作 / 151
第33条:考虑实现任务取消协议 / 157
第34条:缓存泛型异步方法的返回值 / 164
第4章 并行处理 / 167
第35条:了解PLINQ是怎样实现并行算法的 / 167
第36条:编写并行算法时要考虑异常状况 / 179
第37条:优先使用线程池而不是创建新的线程 / 185
第38条:考虑使用BackgroundWorker在线程之间通信 / 190
第39条:学会在XAML环境下执行跨线程调用 / 194
第40条:首先考虑用lock()实现同步 / 202
第41条:尽量缩减锁定范围 / 209
第42条:不要在加了锁的区域内调用未知的方法 / 212
第5章 动态编程 / 217
第43条:了解动态编程的优点及缺点 / 217
第44条:通过动态编程技术更好地运用泛型参数的运行期类型 / 226
第45条:使用DynamicObject和IDynamicMetaObjectProvider实现数据驱动的动态类型 / 229
第46条:学会正确使用Expression API / 240
第47条:尽量减少公有API中的动态对象 / 246
第6章 加入全球C#社区 / 253
第48条:流行的写法不一定合适 / 253
第49条:与大家一起制定规范并编写代码 / 255
第50条:考虑用分析器自动检查代码质量 / 256
中英文词汇对照表 / 258
↑折 叠
媒体评论
在本书中,世界知名.NET专家 Bill Wagner 讲述了 50 条写出健壮且高效的 C# 7.0 代码的开发技巧,这些技术能够帮助C#程序员解决日常工作中常见的问题。
Wagner在《Effective C#》的3 个版本中的清晰解释、专家技巧和真实代码用例,已经被成千上万个开发者证实是非常宝贵的。本书原书第2版在第1版的基础上做了大幅调整。它与《Effective C#》的 3 个版本一样,也以清晰而务实的风格,系统地呈现出了一套贴近当前 C# 语言的技巧与范例。书中给出的建议都是行之有效的,它们会告诉你怎样改用 C# 7.0 的新特性来更有效率地完成常见任务。
作为C#标准委员会的重要成员,本书作者Wagner利用他无与伦比的 C#开发经验,讲述了如何使用C#通过面向对象、函数和面向服务来管理数据,如何将设计理念传达给用户和其他开发者,以及如何利用强大的异步和动态编程技巧。
■
使用属性而不是可直接访问的数据成员(第 1 条)
■
注意值类型与引用类型之间的区别(第 4 条)
■
理解相等的不同概念及它们之间的关系(第 9 条)
■
不要在 API 里面提供转换运算符(第 11 条)
■
理解接口方法与虚方法之间的区别(第 15 条)
■
不要重载基类中定义的方法(第 19 条)
■
尽量把重载方法创建得清晰、简洁而完备(第 22 条)
■
在迭代器与异步方法中定义局部函数,以便尽早地报错(第 26 条)
■
使用异步方法执行异步工作(第 27 条)
■
使用异步方法以避免线程分配和上下文切换(第 30 条)
■
编写并行算法时要考虑异常状况(第 36 条)
■
优先使用线程池而不是创建新的线程(第 37 条)
■
考虑使用 BackgroundWorker 在线程之间通信(第 38 条)
■
尽量缩减锁定范围(第 41 条)
■
了解动态编程的优点及缺点(第 43 条)
■
学会正确使用 Expression API(第 46 条)
■
尽量减少公有 API中的动态对象(第 47 条)