十载演进,C#日渐强大,新增了泛型、函数式编程概念,以及对静态类型和动态类型的支持,而大量新兴编程习惯背后,却是种种具有迷惑性的“陷阱”,Bill Wagner将以此书帮您避免C#语言和.NET环境中的“陷阱”。
本书充分挖掘了C# 4.0的强大功能,并给出了简明、精确表达设计的50个实用方法。书中用大量代码示例,以50个条目条分缕析,为实际应用给出了清晰、专业、实用的建议,阐述了C#语言和.NET框架的方方面面,包括类型、资源管理、动态类型和多核支持。
本书主要内容包括:利用编译期常量和运行时常量提高效率和可维护性(条目2);探索常量类型以促进多核处理(条目20);最小化垃圾收集、装箱和拆箱操作(条目16和条目45);探索接口和委托的强大功能(条目22至条目25);探索并行算法的魔力(条目35至条目37);使用“鸭子类型”(条目38);利用表达式API替代反射API(条目42和条目43);利用查询表达式替代循环(条目8);支持泛型协变和逆变(条目29);使用可选参数减少方法重载(条目10)。
第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
条目19 保证0为值类型的有效状态 99
条目20 保证值类型的常量性和原子性 103
第3章 使用C#表达设计 111
条目21 限制类型的可见性 112
条目22 通过定义并实现接口替代继承 115
条目23 理解接口方法和虚方法的区别 123
条目24 用委托实现回调 127
条目25 用事件模式实现通知 130
条目26 避免返回对内部类对象的引用 137
条目27 让类型支持序列化 140
条目28 提供粗粒度的因特网服务API 148
条目29 支持泛型协变和逆变 152
第4章 使用框架 158
条目30 使用覆写而不是事件处理函数 158
条目31 使用IComparable〈T〉和IComparer〈T〉实现顺序关系 161
条目32 避免使用ICloneable接口 168
条目33 仅用new修饰符处理基类更新 171
条目34 避免重载基类中定义的方法 175
条目35 PLINQ如何实现并行算法 179
条目36 理解PLINQ在I/O密集场景中的应用 189
条目37 注意并行算法中的异常 193
第5章 C#中的动态编程 199
条目38 理解动态类型的优劣 199
条目39 使用动态类型表达泛型类型参数的运行时类型 207
条目40 将接受匿名类型的参数声明为dynamic 210
条目41 用DynamicObject或IDynamicMetaObjectProvider实现数据驱动的动态类型 213
条目42 如何使用表达式API 223
条目43 使用表达式将延迟绑定转换为预先绑定 229
条目44 尽量减少在公有API中使用动态对象 234
第6章 杂 项 240
条目45 尽量减少装箱和拆箱 240
条目46 为应用程序创建专门的异常类 243
条目47 使用强异常安全保证 248
条目48 尽量使用安全的代码 257
条目49 实现与CLS兼容的程序集 260
条目50 实现小尺寸、高内聚的程序集 265
平面设计到底是什么而存在的呢?让我们将这个学科拆解成一些关键的元素来分析。本书既分析了平面设计的传统实践,例如编排样式、
此刻呈现在你面前的是这样一本书:它专为非设计专业的你准备,无需任何设计基础即可阅读;它既能让你的PPT倍儿有面子,又能为你的
《短线金手6:T+0战法实战剖析》内容简介:本书精选99种炒股T+0战法案例,结合私募实战操作分析,全方位解析T+0战法在实战中的运用
本书详细阐明了碳纤维的生成机理、生产工艺及生产设备,对碳纤维的结构与性能进行了深层次的论述,并对碳纤维复合材料的性能、制
《蔡澜旅行食记(2)》内容简介:《蔡澜旅行食记2》是畅销书《蔡澜旅行食记》的续篇,文章仍以蔡澜先生以寻味为目的的游记和杂感随
自动控制理论基础 内容简介 《自动控制理论基础》深入浅出地阐述了自动控制的基本概念和基本理论。分析了开、闭环自动控制系统的主要特点和基本要求。详细讲解了控制系统...
《Java并发编程实战》内容简介:本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的
《守土育人:重大公共卫生事件中的高校学生工作》内容简介:高校人员密集、场所封闭、流动性强、社会关注度高,是突发公共卫生事件
Linux 本书特色 《完全傻瓜·Linux(第2版)》:简便方法:让你*大限度地掌握Linux简易步骤:教你安装、配置Linux,使用K桌面环境,将您的计算机...
《大脑减压的子弹笔记法》内容简介:为什么风靡全球的子弹笔记,最终变成杂乱无章的待办清单? 为什么尝试过时间管理,最终还是回到
《私人财富保护、传承与工具》内容简介:企业、家族、婚姻等多方面的真实案例,多种财富管理工具,深入介绍财富规划方案及风险。这
Visual C++程序设计基础实训教程 内容简介 VisualC是当前计算机领域较流行的一种进行面向对象与可视化程序设计的工具,VisualC程序设计也是计算...
《汽车维修从入门到精通(彩色图解+视频)》内容简介:本书按照汽车维修人员的认知规律从易到难介绍了汽车维修的有关知识,包括汽车
《人类的未来》内容简介:★人类在工业文明之后应该建立什么样的文明?在人工智能、基因工程、通信等技术爆炸式发展的当今世界,我
《JSP设计》(第3版)自1999处JSP1.0发布以来,JavaServerPages(JSP)可谓掀起了一场风暴,其追随者蜂拥而至。JSP为企业Java开发...
本书通过实例翔实介绍了如何借助于电话、电脑和互联网来设计和执行各种远程用户研究。主题涉及远程用户研究之于实验室研究的优势
《网络安全应急响应基础理论及关键技术》内容简介:本书主要针对网络安全专业的从业者、学生、爱好者,概述了网络安全应急响应方面
《亲历延安岁月:延安中央医院的往事》内容简介:作者历时8年,拜访了100多位在中央医院工作过的老同志和200多位延安时期的爸爸妈妈
本书主要讲解Windows高级调试思想和工具,并涉及一些高级调试主题。本书内容主要包括:工具简介、调试器简介、调试器揭密、符号文
《海外征程2》内容简介:本书改编自华为前员工的真实经历,讲述了海外开拓者在海外拼搏的热血故事。拉美市场的战斗正式打响。4G网络