特别优惠
跟上新发行和促销的步伐。注册,听取我们的意见。
这本电子书包括以下格式,可从您的账户购买后页面:
EPUB这是一种开放的行业格式,以其可回流的内容和在受支持的移动设备上的可用性而闻名。
PDF流行的标准,最常与自由一起使用Adobe®®读者软件
这本电子书不需要密码或激活阅读。我们通过谨慎地用您的名字标记水印来定制您的电子书,使其独一无二。
Web Edition是一种在线学习产品,您可以在连接到互联网时在Web浏览器中查看。一些Web版本包括额外的交互功能,如视频、测验或实时代码编辑。阅读产品说明了解更多细节。Web版将从您的账户购买后的页面。
查看Web版本需要完全支持HTML5的Web浏览器。支持的平台有:
Web Edition是一种在线学习产品,您可以在连接到互联网时在Web浏览器中查看。一些Web版本包括额外的交互功能,如视频、测验或实时代码编辑。阅读产品说明了解更多细节。Web版将从您的账户购买后的页面。
查看Web版本需要完全支持HTML5的Web浏览器。支持的平台有:
这本电子书包括以下格式,可从您的账户购买后页面:
EPUB这是一种开放的行业格式,以其可回流的内容和在受支持的移动设备上的可用性而闻名。
PDF流行的标准,最常与自由一起使用Adobe®®读者软件
这本电子书不需要密码或激活阅读。我们通过谨慎地用您的名字标记水印来定制您的电子书,使其独一无二。
Web Edition是一种在线学习产品,您可以在连接到互联网时在Web浏览器中查看。一些Web版本包括额外的交互功能,如视频、测验或实时代码编辑。阅读产品说明了解更多细节。Web版将从您的账户购买后的页面。
查看Web版本需要完全支持HTML5的Web浏览器。支持的平台有:
Web Edition是一种在线学习产品,您可以在连接到互联网时在Web浏览器中查看。一些Web版本包括额外的交互功能,如视频、测验或实时代码编辑。阅读产品说明了解更多细节。Web版将从您的账户购买后的页面。
查看Web版本需要完全支持HTML5的Web浏览器。支持的平台有:
在Effective c#,第三版受人尊敬的。net专家Bill Wagner列举了50种方法来充分利用c# 6.0语言的强大功能来编写异常健壮、高效和性能良好的代码。为了反映c#语言及其开发社区的日益成熟,Wagner已经确定了几十种编写更好代码的新方法。188bet备用网这个版本的新解决方案包括一些利用泛型的解决方案和一些更关注LINQ的解决方案,以及处理异常的高级最佳实践的完整章节。
Wagner清晰、实用的解释、专家提示和真实的代码示例使《Effective c#》成为成千上万开发人员不可或缺的工具。凭借他无与伦比的c#经验,他阐述了从资源管理到多核支持的所有内容,并揭示了如何避免该语言及其。net环境中的常见陷阱。学习如何在存在多种选择时选择最有效的解决方案,以及如何编写更容易维护和改进的代码。瓦格纳展示了如何以及为什么这样做
你已经是一个成功的c#程序员,这本书将使你成为一个杰出的程序员。
内容更新程序:此标题不再是内容更新计划的一部分。内容是最终的,不会发布进一步的更新。
下载样例页面(包括第二章和索引)。
介绍十三世
第1章:c#语言习惯用法
条款1:偏爱隐式类型的局部变量
选项2:首选readonly而不是const 7
条款3:优先使用is或as操作符而不是强制类型转换12
第四项:取代string.Format()和插入字符串19
项目5:为特定文化的字符串选择formatablestring
条款6:避免使用字符串类型的api
项目7:用代表表达回调
项目8:对事件调用使用Null条件操作符31
项目9:最小化装箱和拆箱
项目10:使用新的修饰符只对基类更新作出反应
第2章:.NET资源管理
项目11:理解。net资源管理
条款12:优先使用成员初始化式而不是赋值语句
条款13:为静态类成员使用适当的初始化
项目14:最小化重复初始化逻辑
项目15:避免创建不必要的对象
条款16:永远不要在构造函数中调用虚函数
项目17:实施标准处置模式
第3章:使用泛型
条款18:始终定义最小和充分的约束
项目19:使用运行时类型检查专门化泛型算法
条款20:实现IComparable
条款21:总是创建支持一次性类型参数的泛型类
第22项:支持通用协方差和逆变101
项目23:使用委托在类型参数上定义方法约束
条款24:不要在基类或接口上创建泛型特化
项目25:除非类型参数是实例字段,否则首选泛型方法
项目26:在通用接口之外实现经典接口
项目27:用扩展方法扩充最小接口契约
项目28:考虑用扩展方法增强构造类型
第4章:使用LINQ 133
项目29:优先使用迭代器方法而不是返回集合
项目30:优先使用查询语法而不是循环
项目31:为序列144创建可组合api
项目32:从动作、谓词和函数中解耦迭代
项目33:按要求生成序列项目
第34项:通过使用函数参数来放松耦合
条款35:永远不要重载扩展方法
项目36:理解查询表达式如何映射到方法调用
条目37:在查询中选择惰性求值而不是主动求值
条款38:优先使用Lambda表达式而不是方法
项目39:避免在函数和操作中抛出异常
项目40:区分提前执行和延迟执行
项目41:避免占用昂贵的资源
项目42:区分可枚举数据源和可查询数据源
条款43:使用Single()和First()对查询执行语义期望
项目44:避免修改绑定变量
第五章:例外实践
条款45:使用异常报告方法契约失败
项目46:使用using和try/finally进行资源清理
项目47:创建完整的特定应用程序异常类
Item 48:更喜欢强异常保证
项目49:首选异常过滤器捕获并重新抛出245
项目50:利用异常过滤器中的副作用
指数253