十载演进,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
由杜波依斯编著的《MySQL技术内幕(第4版)》介绍了MySQL的基础知识及其有别于其他数据库系统的独特功能,包括SQL的工作原理和My
《别具光芒CSS属性、浏览器兼容与网页布局》结合大量范例与实际应用的实例,详细介绍了W3C发布的层叠样式表CSS2.1规范,浏览器对
本书内容包括:背景、DNS是如何工作的、建立BIND、DNS和电子邮件、培植主机、维护BIND、扩展你的域、用解析器和名字服务器的库例
大多数的设计师在职业发展上都得先靠自吹自擂作保证,先接下各种自己不熟悉的设计案,再硬着头皮摸索出一条路。本书提供的80个创
《计算机导论与实践(第2版)》内容简介:本书以实验的形式讲述了计算机导论实践课程涉及的计算机硬件、操作系统、应用软件、多媒体
计算智能 内容简介 本书共9章,介绍了传统智能技术的主要原理与技术、方法,主要包括知识的表示、基本推理、不确定推理、搜索原理等。同时,还介绍了现代智能技术主要的...
《暑期社会调查报告优秀作品集(2019)》内容简介:本书为南京理工大学马克思主义学院“毛泽东思想与中国特色社会主义理论体系概论
本书主要包括两方面内容,首先是对工业设计发展的简要历史的回顾,从中读者可以理解工业国家的技术发展过程的经验和教训。然后探
深度学习-基于MATLAB的设计实例 本书特色 深度学习如此流行,以至于关于它的资料随处可见。但往往是理论连篇,并不适合开发者具体使用,本书内容丰富实用、原理直...
《矛与盾:黑客攻防命令大曝光》内容简介:《矛与盾:黑客攻防命令大曝光》紧紧围绕黑客命令与实际应用展开,在剖析黑客入侵中用户
《命运好好玩(汉、英双语版)》内容简介:蔡澜为人幽默风雅,以鲜活、生动的文字讲述他的所见所闻,与读者分享他的识见。他说:“
本书包括通信工程监理应知、通信工程质量控制应知、通信工程监理管理应会、通信工程质量控制应会、通信工程监理服务运作程序(对监
随着网站越来越大,问题开始出现:速度变慢、链接失败、安全性变差、兼容性降低……怎么办?从头开始重建网站总不是明智之举,这
《从雄安到人工智能》内容简介:本书从政治经济、外交环境、文化教育、科技发展等几个领域的社会热点事件切入,细述事件背后的来龙
《洞悉用户:用户研究方法与应用》内容简介:用户研究在现代设计中扮演着极为重要的角色。但就在若干年前,就连惠普、索尼、Tektr
《农产品上行运营策略与案例》内容简介:2018年的中央一号文件开启了中国乡村振兴的“三农”新时代,文件对农村电商的要求进一步聚
《人人都该懂的科学简史》内容简介:什么是科学与科学家?科学的未来将去往何方? 科学革命如何从无到有?为什么说蒸汽机是工业革命
SOLIDWORKS高级曲面教程-2015版 本书特色 美国ds solidworks公司所著的《solidworks高 级曲面教程》(2015版)根据soli...
《3ds Max 2009/VRay(中文版)》内容简介:《3ds Max 2009/VRay中文版效果图灯光、材质、渲染技法精粹张》讲解VRay灯光、材质与渲
《新媒体用户研究》内容简介:《新媒体用户研究》关照新媒体时代的人,探究人与新媒体之间的互动关系,以及在新媒体作用下人与人的