原味精品书系EFFECTIVE C#(第3版):编写高质量C#代码的50条有效方法(英文版)
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121342653
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:284
- 出版时间:2017-06-01
- 条形码:9787121342653 ; 978-7-121-34265-3
本书特色
本书的作者,也是.NET专家Bill Wanger给出我们50条利用C#优点以及特性来写出健壮的,高效的,易于维护的代码的高效法则。同时,本书也反映出了C#语言愈发高级的特性以及关于它的开发社区。本书同时也给出了大量新颖的方法让你能够写出高效可靠的代码。*的第三版囊括了一些泛型和一些其他的语言集成查询(LINQ),还包括了对异常高级实践这一新的章节。
内容简介
本书的作者,也是.NET专家Bill Wanger给出我们50条利用C#优点以及特性来写出健壮的,高效的,易于维护的代码的高效法则。同时,本书也反映出了C#语言愈发不错的特性以及关于它的开发社区。本书同时也给出了大量新颖的方法让你能够写出高效可靠的代码。近期新的第三版囊括了一些泛型和一些其他的语言集成查询(LINQ),还包括了对异常不错实践这一新的章节。
目录
Item 1: Prefer Implicitly Typed Local Variables ........................................................... 1
Item 2: Prefer readonly to const ..................................................................................... 7
Item 3: Prefer the is or as Operators to Casts ............................................................... 12
Item 4: Replace string.Format() with Interpolated Strings ........................................... 19
Item 5: Prefer FormattableString for Culture-Specific Strings .................................... 23
Item 6: Avoid String-ly Typed APIs ............................................................................ 26
Item 7: Express Callbacks with Delegates ................................................................... 28
Item 8: Use the Null Conditional Operator for Event Invocations ............................... 31
Item 9: Minimize Boxing and Unboxing ..................................................................... 34
Item 10: Use the new Modifier Only to React to Base Class Updates ......................... 38
Chapter 2 .NET Resource Management .................................................. 43
Item 11: Understand .NET Resource Management ...................................................... 43
Item 12: Prefer Member Initializers to Assignment Statements ................................... 48
Item 13: Use Proper Initialization for Static Class Members ....................................... 51
Item 14: Minimize Duplicate Initialization Logic ........................................................ 53
Item 15: Avoid Creating Unnecessary Objects ............................................................ 61
Item 16: Never Call Virtual Functions in Constructors ................................................ 65
Item 17: Implement the Standard Dispose Pattern ....................................................... 68
Chapter 3 Working with Generics ........................................................... 77
Item 18: Always Define Constraints That Are Minimal and Sufficient ....................... 79
Item 19: Specialize Generic Algorithms Using Runtime Type Checking .................... 85
Item 20: Implement Ordering Relations with IComparable<T> and IComparer<T> .. 92
Item 21: Always Create Generic Classes That Support Disposable Type Parameters . 98
Item 22: Support Generic Covariance and Contravariance ........................................ 101
Item 23: Use Delegates to Define Method Constraints on Type Parameters ............. 107
Item 24: Do Not Create Generic Specialization on Base Classes or Interfaces .......... 112
Item 25: Prefer Generic Methods Unless Type Parameters Are Instance Fields ....... 116
Item 26: Implement Classic Interfaces in Addition to Generic Interfaces ................. 120
Item 27: Augment Minimal Interface Contracts with Extension Methods ................ 126
Item 28: Consider Enhancing Constructed Types with Extension Methods .............. 130
Chapter 4 Working with LINQ .............................................................. 133
Item 29: Prefer Iterator Methods to Returning Collections ........................................ 133
Item 30: Prefer Query Syntax to Loops ...................................................................... 139
Item 31: Create Composable APIs for Sequences ...................................................... 144
Item 32: Decouple Iterations from Actions, Predicates, and Functions ..................... 151
Item 33: Generate Sequence Items as Requested ....................................................... 154
Item 34: Loosen Coupling by Using Function Parameters......................................... 157
Item 35: Never Overload Extension Methods ............................................................ 163
Item 36: Understand How Query Expressions Map to Method Calls ........................ 167
Item 37: Prefer Lazy Evaluation to Eager Evaluation in Queries .............................. 179
Item 38: Prefer Lambda Expressions to Methods ...................................................... 184
Item 39: Avoid Throwing Exceptions in Functions and Actions ............................... 188
Item 40: Distinguish Early from Deferred Execution ................................................ 191
Item 41: Avoid Capturing Expensive Resources ........................................................ 195
Item 42: Distinguish between IEnumerable and IQueryable Data Sources ............... 208
Item 43: Use Single() and First() to Enforce Semantic Expectations on Queries ...... 212
Item 44: Avoid Modifying Bound Variables .............................................................. 215
Chapter 5 Exception Practices ................................................................ 221
Item 45: Use Exceptions to Report Method Contract Failures ................................... 221
Item 46: Utilize using and try/finally for Resource Cleanup...................................... 225
Item 47: Create Complete Application-Specific Exception Classes .......................... 232
Item 48: Prefer the Strong Exception Guarantee ........................................................ 237
Item 49: Prefer Exception Filters to catch and re-throw ............................................ 245
Item 50: Leverage Side Effects in Exception Filters .................................................. 249
Index .......................................................................................................... 253
作者简介
Bill Wagner是世界上*著名的C#开发者之一,是ECMA C#标准委员会的成员。他是Humanitarian Toolbox的主席,连续11年被授予Mcrosoft Regional Director和.NET MVP荣誉称号,*近刚刚被委派到.NET基础顾问理事会任职。
影印版,无译者……………
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0