MOREEFFECTIVEC#:改善C#代码的个有效方法原书第2版)pdf下载pdf下载

MOREEFFECTIVEC#:改善C#代码的个有效方法原书第2版)百度网盘pdf下载

作者:
简介:本篇主要提供MOREEFFECTIVEC#:改善C#代码的个有效方法原书第2版)pdf下载
出版社:辽宁出版集团图书专营店
出版时间:2019-03
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

作  者:[美] 比尔·瓦格纳(Bill Wagner) 著 爱飞翔 译
定  价:79
出 版 社:机械工业出版社
出版日期:2019年03月01日
页  数:257
装  帧:平装
ISBN:9787111620716
译者序前言章  处理各种类型的数据 / 1条:使用属性而不是可直接访问的数据成员 / 1第2条:尽量采用隐式属性来表示可变的数据 / 7第3条:尽量把值类型设计成不可变的类型 / 11第4条:注意值类型与引用类型之间的区别 / 16第5条:确保 0 可以当成值类型的有效状态使用 / 21第6条:确保属性能够像数据那样运用 / 25第7条:用元组来类型的作用范围 / 30第8条:在匿名类型中定义局部函数 / 35第9条:理解相等的不同概念及它们之间的关系 / 400条:留意GetHashCode()方法的使用陷阱 / 49第2章  API设计 / 571条:不要在API中提供转换运算符 / 572条:尽量用可选参数来取代方法重载 / 613条:尽量缩减类型的可见范围 / 654条:优先考虑定义并实现接口,而不是继承 / 695条:理解接口方法与虚方法之间的区别 / 776条:用Event模式来实现通知功能 / 827条:不要把类的内部对象通过引用返回给外界 / 878条:优先考虑重写相关的方法,而不是创建事件处理程序 / 919条:不要重载基类中定义的方法 / 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介绍了用于写出健壮且容易完成的C# 7.0代码的50条中阶至高阶技巧,反映了C#语言及其开发社区的发展,可帮助读者解决每日编程工作中可能遇到的问题。
[美] 比尔·瓦格纳(Bill Wagner) 著 爱飞翔 译
比尔?瓦格纳(Bill Wagner),世界知名的C#专家,也是ECMA C#标准委员会成员。他在Humanitarian Toolbox项目中担任主管,并荣获微软公司.NET MVP称号长达11年,很近开始在.NET Foundation AdvisoryCouncil任职。Wagner在工作中与各种规模的公司合作,帮助这些创业公司或企业改进软件开发流程,并培养软件开发团队。目前,他是微软.NET核心内容团队的员工,写过很多与C#语言及.NET框架有关的学习资料。他拥有伊利诺伊大学厄巴纳-尚佩恩分校计算机科学专业的学士学位。
    章处理各种类型的数据C#语言原本是设计给面向对象的开发者使用的,这种开发方式会把数据与功能合起来处理。在C#逐渐成熟的过程中,它又添加了一些新的编程范式,以便支持其他一些常用的开发方式。其中有一种开发方式强调把数据存储方法与数据操作方法分开,这种方式随着分布式系统而兴起,此类系统中的应用程序分成多个小的服务,每个服务只实现一项功能,或者只实现一组相互联系的功能。如果要把数据的存储与操作分开,那么开发者就得有一些新的编程技术可供使用,正是这些需求促使C#语言添加了与之相应的一些特性。本章会介绍怎样把数据本身与操纵或处理该数据的方法分开。此处所说的数据不一定都是对象,也有可能是函数或被动的数据容器。条:使用属性而不是可直接访问的数据成员属性一直是C#语言的特色,目前的属性机制比C#刚引入它的时候更为完备,这使得开发者能够通过属性实现很多功能,例如等
C#语言一直在进化、演变,使用这门语言的开发者社区也是如此。越来越多的程序员都选用C#作为自己在职业生涯中首次接触的语言,他们不会受到其他语言的影响。反之,有些开发者是先使用了几年以C语言为基础的其他语言,然后才转向C#的,这些开发者可能会受到早前那门语言的影响。然而,无论是始终使用C#的人,还是从其他语言转过来的人,都需要培养很多新的习惯,以适应C#语言近年来的变化。编译器开源之后,C#的创新速度大增,准备添加到语言中的新特性也会交给整个开发者社区来评审,而不像原来那样只由少数语言专家评审。此外,开发者社区还可以参与新特性的设计工作。架构与部署方面的变化也要求C#开发者改变早前的编程习惯。拼装微服务(microservice)、构建分布式程序、分离算法与数据等做法,在当前的应用程序开发工作中已经很常见了。因此,C#语言也开始针对这些开发习惯做出调整。笔者在安排本书第2版的内容时,考虑到了等