C#高效编程:改进C#代码的50个行之有效的办法:第2版(Effective系列图书品质保证 )
基本信息
- 原书名: Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C# (2nd Edition)
- 原出版社: Addison-Wesley Professional
- 作者: (美)Bill Wagner [作译者介绍]
- 译者: 陈黎夫
- 丛书名: 图灵程序设计丛书 C#与.NET系列
- 出版社:人民邮电出版社
- ISBN:9787115240415
- 上架时间:2010-11-29
- 出版日期:2010 年12月
- 开本:16开
- 页码:268
- 版次:2-1
- 所属分类:
计算机 > 软件与程序设计 > C#
编辑推荐
真实示例,清晰实用
C#高效率编程进阶专用
Effective系列图书品质保证
推荐阅读
内容简介回到顶部↑
《c#高效编程:改进c#代码的50个行之有效的办法(第2版)》围绕c#语言元素、.net资源管理、使用c#表达设计、创建二进制组件和使用框架等主题,针对50个常见问题给出了详实的解决方案,并就提升编程效率给出了合理建议。书中内容共分6章,分别讲述了实际编程中不可或缺的习惯用法,如何更好地配合开发环境以期在优化之前解决问题,如何用c#语言良好地表达设计意图,bcl、parallel task library的最常见用法和使用框架过程中常用的技巧,如何在c#中使用动态特性,以及一些对创建强壮、易于维护的程序来说非常重要的难以归类的主题。
《c#高效编程:改进c#代码的50个行之有效的办法(第2版)》适合所有c#程序员,也可供高等院校相关专业师生参考。
《c#高效编程:改进c#代码的50个行之有效的办法(第2版)》适合所有c#程序员,也可供高等院校相关专业师生参考。
作译者回到顶部↑
本书提供作译者介绍
作者:(美国)瓦格纳(Bill Wagner) 译者:陈黎夫
Bill Wagner,毕业于伊利诺伊大学香槟分校计算机科学专业,世界知名NET专家,著名软件咨询公司SRTSolutions的创始人,曾荣获微软公司RegionalDirector称号和微软最有价值专家(MVP)称号,有20多年软件开发经验,专注于C#、 NET和Azure平台,曾经领导了众多成功Windows平台产品的开发,他是微软开发社区的活跃人物,长期担任MSDN Magazine、AStRNET Pro、VisualStudio Magazine等技术杂志的专栏作者,他写的本书姊妹篇More Effective .. << 查看详细
目录回到顶部↑
第1章 c#语言习惯 1
条目1 使用属性而不是可访问的数据成员 1
条目2 用运行时常量(readonly)而不是编译期常量(const) 7
条目3 推荐使用is或as操作符而不是强制类型转换 11
条目4 使用conditional特性而不是#if条件编译 19
条目5 为类型提供tostring()方法 26
条目6 理解几个等同性判断之间的关系 33
条目7 理解gethashcode()的陷阱 41
条目8 推荐使用查询语法而不是循环 47
条目9 避免在api中使用转换操作符 51
条目10 使用可选参数减少方法重载的数量 55
条目11 理解短小方法的优势 59
第2章 .net资源管理 63
条目12 推荐使用成员初始化器而不是赋值语句 67
条目13 正确地初始化静态成员变量 70
条目14 尽量减少重复的初始化逻辑 72
条目15 使用using和try/finally清理资源 79
条目16 避免创建非必要的对象 85
条目17 实现标准的销毁模式 89
条目18 区分值类型和引用类型 94
条目1 使用属性而不是可访问的数据成员 1
条目2 用运行时常量(readonly)而不是编译期常量(const) 7
条目3 推荐使用is或as操作符而不是强制类型转换 11
条目4 使用conditional特性而不是#if条件编译 19
条目5 为类型提供tostring()方法 26
条目6 理解几个等同性判断之间的关系 33
条目7 理解gethashcode()的陷阱 41
条目8 推荐使用查询语法而不是循环 47
条目9 避免在api中使用转换操作符 51
条目10 使用可选参数减少方法重载的数量 55
条目11 理解短小方法的优势 59
第2章 .net资源管理 63
条目12 推荐使用成员初始化器而不是赋值语句 67
条目13 正确地初始化静态成员变量 70
条目14 尽量减少重复的初始化逻辑 72
条目15 使用using和try/finally清理资源 79
条目16 避免创建非必要的对象 85
条目17 实现标准的销毁模式 89
条目18 区分值类型和引用类型 94
前言回到顶部↑
与2004年本书第一版出版时相比,2010年的C#社区已经有了很大的变化。越来越多的开发人员开始使用C#,很多人已经将C#作为他们的首选开发语言。这些人并不是半路出家,也没有从其他语言中带来什么不好的习惯。C#社区成员的背景也日益多样化,有刚刚毕业的学生,也有有着几十年经验的专家。
在过去的5年中,C#语言本身也在不断进步。我们现在已经用惯了的泛型、lambda表达式、LINQ等很多特性,在本书第一版时都还不存在。C# 4.0更是添加了一批新功能。不过,虽然C#语言发展的脚步从未停歇,但很多C# 1x版本中的建议仍然没有过时。事后看来,C#的变化显得非常自然,顺理成章地逐步扩展了C# 1.0的功能。新版本的语言提供了新的解决问题方式,但却不会影响从前的惯用做法。
在组织第二版的时候,我同时考虑了C#语言的变化和C#社区的变化。本书并不会平淡地介绍C#的变化过程,而是会告诉你如何使用当前版本的C#语言。第二版中删除掉的条目都是与当前版本C#不相关的主题。添加的新条目涉及了语言和框架的新功能,还包含社区在编写C#软件过程中总结出的经验教训。总而言之,这本书中的一系列建议将帮你更有效、更专业地使用C# 4.0。
本书覆盖到了C# 4.0,但却不是简单的语言新特性介绍。作为Effective Software Development系列丛书之一,本书的主要目的是介绍如何用这些特性帮你解决每天都要遇到的实际问题。书中的很多条目在C# 3.0或更早一些的版本中依旧适用。
读者对象
本书是为那些以C#为主要开发语言的专业开发者编写的。本书假设你已经熟悉了C#的语法和语言特性。第二版还假设你理解了C#4.0中新添加的语法,以及早期版本中的语法。本书并没有包含语言特性的入门介绍,而是着重于阐述如何将当前版本C#中的各个特性集成到你的每日开发工作中。
除了语言特性之外,本书还假设读者对CLR(Common Language Runtime,公共语言运行时)环境和JIT(Just-In-Time)编译器有一定的了解。
内容介绍
语言构造几乎是每个C#程序中都不可避免的。第1章就介绍了这些语言习惯。你在日常工作中经常会用到这些习惯,估计都听腻了。在创建每个类型、实现每个算法时,这些内容都是必不可少的。
在托管环境中开发并不代表环境应该负责所有的事情。你仍需要配合环境,创建出合乎性能需求的程序。这并不仅仅涉及性能测试和性能调优。第2章介绍的条目能帮你更好地和环境配合,以期在开始优化之前就解决问题。
很多时候,我们的代码更需要让人理解,而不是仅用来满足编译器的要求。编译器所关心的只是程序是否合法,但项目的协作者也需要理解代码表示的意图。第3章就介绍了如何用C#语言良好地表达出设计意图。解决一个问题总是有多种方法,而第3章给出的建议将帮你选择一个最易于表达设计意图的做法。
C#并不是一个庞大的语言,但其背后却有着丰富的框架库支持。第4章介绍了将用在核心算法中的.NET BCL(Base Class Library,基础类库),还介绍了使用框架过程中常用的一些技巧。多核处理器是日后发展的趋势,Parallel Task Library让.NET平台下的多线程程序开发迈出了坚实的一步。这一章介绍了Parallel Task Library的最常见用法。
第5章介绍了如何在C#中使用动态特性。C#是一种强类型的静态语言。不过,越来越多的程序都会同时使用动态类型和静态类型。C#在提供了动态编程的种种功能的同时,也没有丢失静态类型所带来的优势。第5章将介绍如何使用动态功能,以及如何避免动态类型泄漏到整个程序之外。
第6章介绍了一些难以归类的主题。这些主题在对创建强壮、易于维护和扩展的程序时会经常用到。
代码规范
开发工具中的代码都有着色,因此在书中也不该只看到黑白的样子。虽然无法实现如同在流行IDE中阅读代码那样的体验,但是我仍旧尽力让你能更容易理解书中的代码。本书中,代码中着重强调的部分将加底纹标出。
在书中提供代码仍需要一些让步,主要是篇幅和易读性方面的问题。书中尽力将代码压缩至足够说明问题的一小段,这通常也意味着类或者方法的其他部分将被省略,包括一些错误恢复代码。公有方法应该验证参数以及其他输入,但这里限于篇幅则通常会省略。类似的省略还包含方法调用时的验证以及复杂算法中常用的try/finally子句等。
这里也假设读者能够找到例子中用到的常用命名空间。或者,你也可以假设每一段代码都引入了如下的using语句:
using System;
using System. Collections.Generic;
在过去的5年中,C#语言本身也在不断进步。我们现在已经用惯了的泛型、lambda表达式、LINQ等很多特性,在本书第一版时都还不存在。C# 4.0更是添加了一批新功能。不过,虽然C#语言发展的脚步从未停歇,但很多C# 1x版本中的建议仍然没有过时。事后看来,C#的变化显得非常自然,顺理成章地逐步扩展了C# 1.0的功能。新版本的语言提供了新的解决问题方式,但却不会影响从前的惯用做法。
在组织第二版的时候,我同时考虑了C#语言的变化和C#社区的变化。本书并不会平淡地介绍C#的变化过程,而是会告诉你如何使用当前版本的C#语言。第二版中删除掉的条目都是与当前版本C#不相关的主题。添加的新条目涉及了语言和框架的新功能,还包含社区在编写C#软件过程中总结出的经验教训。总而言之,这本书中的一系列建议将帮你更有效、更专业地使用C# 4.0。
本书覆盖到了C# 4.0,但却不是简单的语言新特性介绍。作为Effective Software Development系列丛书之一,本书的主要目的是介绍如何用这些特性帮你解决每天都要遇到的实际问题。书中的很多条目在C# 3.0或更早一些的版本中依旧适用。
读者对象
本书是为那些以C#为主要开发语言的专业开发者编写的。本书假设你已经熟悉了C#的语法和语言特性。第二版还假设你理解了C#4.0中新添加的语法,以及早期版本中的语法。本书并没有包含语言特性的入门介绍,而是着重于阐述如何将当前版本C#中的各个特性集成到你的每日开发工作中。
除了语言特性之外,本书还假设读者对CLR(Common Language Runtime,公共语言运行时)环境和JIT(Just-In-Time)编译器有一定的了解。
内容介绍
语言构造几乎是每个C#程序中都不可避免的。第1章就介绍了这些语言习惯。你在日常工作中经常会用到这些习惯,估计都听腻了。在创建每个类型、实现每个算法时,这些内容都是必不可少的。
在托管环境中开发并不代表环境应该负责所有的事情。你仍需要配合环境,创建出合乎性能需求的程序。这并不仅仅涉及性能测试和性能调优。第2章介绍的条目能帮你更好地和环境配合,以期在开始优化之前就解决问题。
很多时候,我们的代码更需要让人理解,而不是仅用来满足编译器的要求。编译器所关心的只是程序是否合法,但项目的协作者也需要理解代码表示的意图。第3章就介绍了如何用C#语言良好地表达出设计意图。解决一个问题总是有多种方法,而第3章给出的建议将帮你选择一个最易于表达设计意图的做法。
C#并不是一个庞大的语言,但其背后却有着丰富的框架库支持。第4章介绍了将用在核心算法中的.NET BCL(Base Class Library,基础类库),还介绍了使用框架过程中常用的一些技巧。多核处理器是日后发展的趋势,Parallel Task Library让.NET平台下的多线程程序开发迈出了坚实的一步。这一章介绍了Parallel Task Library的最常见用法。
第5章介绍了如何在C#中使用动态特性。C#是一种强类型的静态语言。不过,越来越多的程序都会同时使用动态类型和静态类型。C#在提供了动态编程的种种功能的同时,也没有丢失静态类型所带来的优势。第5章将介绍如何使用动态功能,以及如何避免动态类型泄漏到整个程序之外。
第6章介绍了一些难以归类的主题。这些主题在对创建强壮、易于维护和扩展的程序时会经常用到。
代码规范
开发工具中的代码都有着色,因此在书中也不该只看到黑白的样子。虽然无法实现如同在流行IDE中阅读代码那样的体验,但是我仍旧尽力让你能更容易理解书中的代码。本书中,代码中着重强调的部分将加底纹标出。
在书中提供代码仍需要一些让步,主要是篇幅和易读性方面的问题。书中尽力将代码压缩至足够说明问题的一小段,这通常也意味着类或者方法的其他部分将被省略,包括一些错误恢复代码。公有方法应该验证参数以及其他输入,但这里限于篇幅则通常会省略。类似的省略还包含方法调用时的验证以及复杂算法中常用的try/finally子句等。
这里也假设读者能够找到例子中用到的常用命名空间。或者,你也可以假设每一段代码都引入了如下的using语句:
using System;
using System. Collections.Generic;
媒体评论回到顶部↑
“要想成为高效的.NET开发人员,必须很好地了解所用语言,而本书在深入讲解C#语言的同时,提供了具有充分证据支持的论点和洞见,书中内容对各级别的C#开发人员都大有裨益。”
——Jason Bock,Magenic公司首席顾问
“本书是构建高性能、可扩展应用的必备佳作,更值得提及的是,Bill总能将高度复杂的问题简单阐述。”
——Josh Holmes,微软公司Architect Evangelist
——Jason Bock,Magenic公司首席顾问
“本书是构建高性能、可扩展应用的必备佳作,更值得提及的是,Bill总能将高度复杂的问题简单阐述。”
——Josh Holmes,微软公司Architect Evangelist
【插图】







点击看大图






加载中...

