十载演进,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
60571-7Multiratesignalprocessinghasrecentlywitnessedagreatdealofactivity,withawi...
《如果有来生 还是做记者》内容简介:本书是纪念“范敬宜新闻教育奖”颁发六周年的感言集。41篇新闻学子真挚深情的文章,记录了他们
《软件无线电》主要内容有数字无线电,通信系统,数字无线电系统五要素,信号失真的建模,模拟调制和解调,带自动增益控制的抽样
主板常用芯片及电路维修实用手册(含盘) 本书特色 主板是电脑的核心部件,是电脑能够实现各种功能的基础。而主板的核心则是其上面集成的各种电子元器件、各种功能的芯片...
《TCP/IP入门经典(第4版)》深入浅出地介绍了TCP/IP协议的入门知识。全书分为5个部分,共24章:《TCP/IP入门经典(第4版)》首先从T
《Flash游戏编程基础教程》是Flash游戏设计方面的入门级图书。全书共包括5个完整的游戏项目。作者RexvanderSpuy循序渐进地讲解了
汇编语言(第三版) 本书特色 汇编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、...
《清华大学电子与信息技术系列教材:现代通信原理》以现代通信系统为背景,系统、深入地介绍现代通信技术的基本原理,并以数字通信
《阳明学·鱼梁讲会(创刊号)》内容简介:本刊是贵阳学院阳明学与黔学研究院主办的阳明文化讲会集刊。“鱼梁讲会”是研究院的学术
TheResourceDescriptionFramework(RDF)isastructurefordescribingandinterchangingmet...
《自由的人》内容简介:本书是以梁实秋、林语堂为代表的众多亲历者,对中国近现代史上四位极具争议性的文人——徐志摩、郁达夫、闻
《数字图像处理》是数字图像处理领域理论与实践相结合的成功之作,也是经典之作。全书强调如何应用理论知识解决工业和科学研究中
《Istio实战指南》内容简介:本书是Istio服务网格技术的入门图书。全书分为9章,深入浅出地介绍了Istio的相关知识,结合大量的示例
《Solr权威指南(上卷)》内容简介:全书分为上下两卷,总共16章,涵盖了Solr各个方面的知识点。本书从前到后按内容的难易程度以循
《阅读的艺术》内容简介:阅读,不怕从零开始,只怕从未开始 《阅读的艺术》辑录了著名出版人、作家聂震宁的六十余篇关于阅读、书籍
《PLC标准化编程原理与方法》内容简介:本书针对PLC编程工程师设计工作量大、现场调试时间长、售后服务工作量大、工作效率低的现状
《绝密原型档案》内容简介:本书重心是阐述如何设计产品原型,笔者根据多个项目的实战经验,在解读原型制作过程的同时分享了一些切
这场始于政府工作报告,由互联网和传统行业跨界融合形成的巨大浪潮,正在以中国经济转型为新驱动力的角色,席卷生机勃勃的整个国
《经济增长中的技术进步机制:基于理论变迁的研究》内容简介:本书从理论变迁的角度研究了古典增长理论、马克思经济增长理论、熊彼
《30天学会钢琴弹奏》内容简介:想随心所欲地弹奏出一首流畅的钢琴曲,却苦于不识五线谱?没有时间去上钢琴班,自学又太费时间?《