More Effective C#中文版

出版时间:2009-11  出版社:人民邮电出版社  作者:[美]Bill Wagner  页数:292  译者:陈黎夫  
Tag标签:无  

前言

  自从Anders Hejlsberg在2005年专业开发者大会上第一次演示LINQ(Language-Integrated Query,语言集成查询)以来,C#编程世界就被彻底地改变了。LINQ的出现为C#语言带来了几个令人着迷的新特性:扩展方法、局部变量类型推断、lambda表达式、匿名类型、对象初始化器以及集合初始化器。C#2.0也为LINO的出现打下了坚实的基础,添加了包括泛型、迭代器、静态类、可空类型、属性访问器权限以及匿名委托等新功能。但即使在非LINQ的使用环境中,这些语言特性也有大显身手之处——毕竟还有很多非数据访问的编程任务。  本书针对C#2.0和C#3.0中添加的新特性给出了实用的建议,也包含了在我的上本图书Effcetive V:50 Specific Ways to Improve Your C#(Addison-Wesley,2004)中没有提到的高级特性。本书中的条目主要针对那些正在使用C#3.0编写程序的开发人员。书中着重介绍了泛型技术,这是C#2.0和C#3.0中众多新特性的基石。本书并没有将条目按照语言特性组织起来,而是根据新特性最善于解决的编程问题来编排条目的。

内容概要

  《More Effective C#中文版:改善C#程序的50个具体办法》延续了Effective系列图书的风格,针对C# 2.0和C# 3.0中添加的新特性给出了实用的建议。书中的50个条目自成一体且又丝丝相扣,这些条目按照泛型、多线程开发、C#设计模式、C# 3.0语言增强、LINQ以及杂项等主题分为6类,将特定的代码和深入的分析有机地结合了起来,能够帮助你以最佳的方式从C# 1.x切换至C# 3.0。当你通读全书之后,会发现不只得到了一条条独立的建议,还学到了如何以优雅的方式用C#进行程序设计。  《More Effective C#中文版:改善C#程序的50个具体办法》适合具有C#编程经验的.NET开发人员阅读。

作者简介

  瓦格纳(Bill Wagner),拥有超过25年的软件开发经验。世界知名的.NET专家。微软C#MVP。并荣获微软Regional Director称号。他是著名软件咨询公司SRT Solutions的创始人。曾经领导了众多成功的Windows平台产品的开发。他是微软开发社区的活跃人物,长期担任MSDN Magazine、ASRNETPro、Visual Studio Magazine等技术杂志的专栏作者。他还是畅销书《Effective C#中文版》(人民邮电出版社,2007)的作者。他的博客是http://srtsolutions.com/blogs/billwagner。可以通过bill.wagner@srtsolutions.com与他联系。  译者简介:  陈黎夫,毕业于上海交通大学计算机科学专业。有多年业界经验,曾在微软、EMC等公司任职,现任某创业技术公司CTO。专注于微软技术与LAMP开发平台。并连续3年荣获微软MVP称号。有多本计算机领域内著作/译作出版。内容涵盖CSS、A.JAX、ASP.NET、C#、LINQ和.NET平台架构等多个方面。可以通过dflyingchen@gmail.com与他联系。

书籍目录

第1章 使用泛型 1条目1:使用1.x框架API的泛型版本 4条目2:恰到好处地定义约束 14条目3:运行时检查泛型参数的类型并提供特定的算法 19条目4:使用泛型强制编译期类型推断 26条目5:确保泛型类型支持可销毁对象 32条目6:使用委托定义类型参数上的方法约束 36条目7:不要为基类或接口创建泛型的特殊实现 42条目8:尽可能使用泛型方法,除非需要将类型参数用于实例的字段中 46条目9:使用泛型元组代替out和ref参数 50条目10:在实现泛型接口的同时也实现传统接口 56第2章 C#中的多线程 63条目11:使用线程池而不是创建线程 67条目12:使用BackgroundWorker实现线程间通信 74条目13:让lock()作为同步的第一选择 78条目14:尽可能地减小锁对象的作用范围 86条目15:避免在锁定区域内调用外部代码 90条目16:理解Windows窗体和WPF中的跨线程调用 93第3章 C#设计实践 105条目17:为序列创建可组合的API 105条目18:将遍历和操作、谓词以及函数分开 112条目19:根据需要生成序列中的元素 117条目20:使用函数参数降低耦合 120条目21:让重载方法组尽可能清晰、最小化且完整 127条目22:定义方法后再重载操作符 134条目23:理解事件是如何增加对象间运行时耦合的 137条目24:仅声明非虚的事件 139条目25:使用异常来报告方法的调用失败 146条目26:确保属性的行为与数据类似 150条目27:区分继承和组合 156第4章 C# 3.0语言增强 163条目28:使用扩展方法增强现有接口 163条目29:使用扩展方法增强现有类型 167条目30:推荐使用隐式类型局部变量 169条目31:使用匿名类型限制类型的作用域 176条目32:为外部组件创建可组合的API 180条目33:避免修改绑定变量 185条目34:为匿名类型定义局部函数 191条目35:不要在不同命名空间中声明同名的扩展方法 196第5章 使用LINQ 201条目36:理解查询表达式与方法调用之间的映射 201条目37:推荐使用延迟求值查询 213条目38:推荐使用lambda表达式而不是方法 218条目39:避免在函数或操作中抛出异常 222条目40:区分早期执行和延迟执行 225条目41:避免在闭包中捕获昂贵的外部资源 229条目42:区分IEnumerable和IQueryable数据源 242条目43:使用Single()和First()来明确给出对查询结果的期待 247条目44:推荐保存Expression而不是Func 249第6章 杂项 255条目45:最小化可空类型的可见范围 255条目46:为部分类的构造函数、修改方法以及事件处理程序提供部分方法 261条目47:仅在需要parms数组时才使用数组作为参数 266条目48:避免在构造函数中调用虚方法 271条目49:考虑为大型对象使用弱引用 274条目50:使用隐式属性表示可变但不可序列化的数据 277索引 283

章节摘录

  当运行时需要JIT编译一个泛型定义(泛型方法或泛型类),且至少有一个类型参数为值类型时,那么该过程可以分为两个步骤。首先,编译器将创建一个新的IL类,用来表示该封闭泛型类型。例如,在泛型定义中将T用int或其他某种值类型替换。随后,JIT将把该代码编译成x86指令。这两个步骤非常有必要,因为JIT并不是在某个类加载时就为其生成完整的x86指令,而是仅在类中的每个方法被第一次调用时才开始编译的。这样,框架有必要在IL代码上先执行一个替换的步骤,随后再像普通类定义一样按需编译。  这也就意味着运行时的额外内存占用将分为如下两个部分:一是为每种用值类型作为参数的封闭泛型类型保存一份IL定义的副本,二是为每种用值类型作为参数的封闭类型保存一份所调用方法的机器码的副本。  不过这个使用值类型作为泛型参数的做法也有它的好处:避免了对于值类型的装箱和拆箱操作,这样也就降低了值类型的代码/数据所占用的空间。此外,类型安全可以由编译器保证,也就让框架不必忙于进行运行时检查,进一步降低了代码量并提高了程序的性能。不仅如此,与创建泛型类相比,创建泛型方法将有助于降低为支持不同实例而需要额外生成的IL代码量(将在条目8中介绍)。只有实际用到的方法才会被实例化。非泛型类中定义的泛型方法将不会被JIT编译。

媒体关注与评论

  “身为C#设计组的成员,我很少能够从C#书中学到什么新东西,本书则是个例外,它很好地将特定的代码和深入的分析结合了起来。……这些富有洞察力的、充满远见的内容会给你日后学习C#很大的启发和帮助。”  ——Mads Torgersen,微软公司Visual C#项目经理  “Bill Wagner为C#开发人员撰写了一部精彩绝伦的图书,其中介绍了大量C#最佳实践。……若想成为C#开发的顶级高手。那么没有什么资料比Bill Wagner的这本书更好了。Bill非常智慧、深刻,富有经验和技巧。若能将这本书中给出的建议应用到你的代码中,定会大大提高你的工作质量。”  ——Charlie Calvert,微软公司Visuak C#社区项目经理

编辑推荐

  C#语言已经成为目前功能最强大的通用语言之一,近几年的几次升级更是令C#编程世界发生了极大的改变。《More Effective C#中文版:改善C#程序的50个具体办法》是Effective C#的续作,秉承了Effective经典系列的卓越风格,用真实的代码示例。通过清晰、贴近实际和简明的阐述,以条目形式为广大程序员提供了凝聚业界经验结晶的专家建议。  《More Effective C#中文版:改善C#程序的50个具体办法》中,著名.NET专家Bill Wagner围绕C#2.0和3.0中的新特性给出了实用的建议,涉及泛型、多线程编程、设计实践、C#3.0语言增强、LINQ、可空类型等主题,讲述了如何在开发中使用这些新语言特性,如何避免误用造成的影响。书中每个条目自成一体,针对使用C#时的某个特定问题。帮助你以最佳的方式切换至C#3.0。通过阅读《More Effective C#中文版:改善C#程序的50个具体办法》,读者完全可以举一反三,将其中许多建议应用到自己的日常编程工作中。  C#语言顶级高手的秘籍  业界资深专家智慧和经验的结晶  理论和实践的完美结合

图书封面

图书标签Tags

评论、评分、阅读与下载


    More Effective C#中文版 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7