Effective C#(原书第3版)

Effective C#(原书第3版)

改善C#代码的50个有效方法

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.319 评价豆瓣读书

作品简介

在本书中,世界知名的.NET专家Bill Wagner先生给出了50条建议,告诉你怎样充分利用C#6.0所具备的特性来编写健壮而高效的代码。这些建议反映了C#开发界的新进展,也令人体会到C#这门语言已经越来越成熟。除了提出许多种改善代码品质的新方式,例如怎样发挥泛型的优势之外,本书还针对LINQ给出了很多条建议。

比尔·瓦格纳(Bill Wagner),世界知名的C#专家,也是ECMA C#标准委员会成员。他在Humanitarian Toolbox项目中担任主管,并荣获微软公司.NET MVP称号长达11年,最近开始在.NET Foundation AdvisoryCouncil任职。Wagner在工作中与各种规模的公司合作,帮助这些创业公司或企业改进软件开发流程,并培养软件开发团队。目前,他是微软.NET核心内容团队的员工,写过很多与C#语言及.NET框架有关的学习资料。他拥有伊利诺伊大学厄巴纳—尚佩恩分校计算机科学专业的学士学位。

作品目录

  1. 本书赞誉
  2. 译者序
  3. 前言
  4. 第1章 C#语言的编程习惯
  5. 第1条:优先使用隐式类型的局部变量
  6. 第2条:考虑用readonly代替const
  7. 第3条:优先考虑is或as运算符,尽量少用强制类型转换
  8. 第4条:用内插字符串取代string.Format()
  9. 第5条:用FormattableString取代专门为特定区域而写的字符串
  10. 第6条:不要用表示符号名称的硬字符串来调用API
  11. 第7条:用委托表示回调
  12. 第8条:用null条件运算符调用事件处理程序
  13. 第9条:尽量避免装箱与取消装箱这两种操作
  14. 第10条:只有在应对新版基类与现有子类之间的冲突时才应该使用new修饰符
  15. 第2章 .NET的资源管理
  16. 第11条:理解并善用.NET的资源管理机制
  17. 第12条:声明字段时,尽量直接为其设定初始值
  18. 第13条:用适当的方式初始化类中的静态成员
  19. 第14条:尽量删减重复的初始化逻辑
  20. 第15条:不要创建无谓的对象
  21. 第16条:绝对不要在构造函数里面调用虚函数
  22. 第17条:实现标准的dispose模式
  23. 第3章 合理地运用泛型
  24. 第18条:只定义刚好够用的约束条件
  25. 第19条:通过运行期类型检查实现特定的泛型算法
  26. 第20条:通过IComparable<T>及IComparer<T>定义顺序关系
  27. 第21条:创建泛型类时,总是应该给实现了IDisposable的类型参数提供支持
  28. 第22条:考虑支持泛型协变与逆变
  29. 第23条:用委托要求类型参数必须提供某种方法
  30. 第24条:如果有泛型方法,就不要再创建针对基类或接口的重载版本
  31. 第25条:如果不需要把类型参数所表示的对象设为实例字段,那么应该优先考虑创建泛型方法,而不是泛型类
  32. 第26条:实现泛型接口的同时,还应该实现非泛型接口
  33. 第27条:只把必备的契约定义在接口中,把其他功能留给扩展方法去实现
  34. 第28条:考虑通过扩展方法增强已构造类型的功能
  35. 第4章 合理地运用LINQ
  36. 第29条:优先考虑提供迭代器方法,而不要返回集合
  37. 第30条:优先考虑通过查询语句来编写代码,而不要使用循环语句
  38. 第31条:把针对序列的API设计得更加易于拼接
  39. 第32条:将迭代逻辑与操作、谓词及函数解耦
  40. 第33条:等真正用到序列中的元素时再去生成
  41. 第34条:考虑通过函数参数来放松耦合关系
  42. 第35条:绝对不要重载扩展方法
  43. 第36条:理解查询表达式与方法调用之间的映射关系
  44. 第37条:尽量采用惰性求值的方式来查询,而不要及早求值
  45. 第38条:考虑用lambda表达式来代替方法
  46. 第39条:不要在Func与Action中抛出异常
  47. 第40条:掌握尽早执行与延迟执行之间的区别
  48. 第41条:不要把开销较大的资源捕获到闭包中
  49. 第42条:注意IEnumerable与IQueryable形式的数据源之间的区别
  50. 第43条:用Single()及First()来明确地验证你对查询结果所做的假设
  51. 第44条:不要修改绑定变量
  52. 第5章 合理地运用异常
  53. 第45条:考虑在方法约定遭到违背时抛出异常
  54. 第46条:利用using与try/finally来清理资源
  55. 第47条:专门针对应用程序创建异常
  56. 第48条:优先考虑做出强异常保证
  57. 第49条:考虑用异常筛选器来改写先捕获异常再重新抛出的逻辑
  58. 第50条:合理利用异常筛选器的副作用来实现某些效果
  59. 中英文词汇对照表
载入中