新书推荐 |《More Effective C#:改善C#代码的50个有效方法(原书第2版)》

新书推荐

《More Effective C#:改善C#代码的50个有效方法(原书第2版)》

点击上图了解及购买

经典畅销书《Effective C#》的进阶篇,世界知名专家Bill Wagner倾力撰写,针对C# 7.0全面更新。

内容简介

在本书中,世界的.NET专家Bill Wagner介绍了用于写出健壮且容易完成的C# 7.0代码的50条中阶至高阶技巧,反映了C#语言及其开发社区的发展,可帮助读者解决每日编程工作中可能遇到的问题。

作者简介

Bill Wagner 

世界知名的C#专家,ECMA C#标准委员会成员,畅销书《Effective C#》的作者。他在 Humanitarian Toolbox 项目中担任主管,荣获微软公司Regional Director和.NET MVP 称号长达11年,最近开始在 .NET Foundation Advisory Council 任职。Wagner 在工作中与各种规模的公司合作,帮助这些创业公司或企业改进软件开发流程,并培养软件开发团队。目前,他是微软.NET核心内容团队的员工,写过很多与C#语言及.NET核心有关的学习资料。他拥有伊利诺伊大学厄巴纳-尚佩恩分校计算机科学专业的学士学位。

目录

译者序

前言

第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

你与世界

只差一个

公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值