编写高质量代码:改善C#程序的157个建议

陆敏技
前言 为什么写这本书 事实上,我在写本书之前就一直在思考一个问题:到底什么样的编程书籍能够帮助入门者快速进阶?所谓“入门者”指的是已经可以使用一门语言编写程序,但是不明白如何编写高质量代码的人。于是我开始回忆自己在开发生涯中的入门阶段,那时候,我常常被以下三类问题所困扰。第一类来自于语言本身,如: ❑如何格式化字符串才是最高效的? ❑基本类型间或其他CLR类型间的转换怎样才算是最高效的? ❑for和foreach有什么区别,何时该用for,何时该用foreach? ❑什么是Dispose模式,为什么要释放资源,如何释放资源? ❑多线程应选择何种方式来开启和结束,各线程之间为什么要同步,如何同步,如何锁定资源? 第二类来自于设计架构,如果你对编码充满热情,相信你的大脑里很快就会充满以下这些问题: ❑使用单例模式还是静态类,为什么有了静态类还需要单例模式? ❑该使用静态方法还是实例方法,它们的本质区别是什么? ❑如何使用异常才是最正确的,什么时候抛出异常,什么时候“吃掉”异常,为什么需要自定义异常? ❑如何避免过多的条件判断分支? ❑如何保证程序的数据安全和通信安全? 第三类问题最常见,可能来自于编码习惯和编程思想,我在入门阶段经常会问自己下面这些问题: ❑一个文件只包含一个类比较好,还是一个文件可以包含多个类? ❑如何命名才是专业级别的? ❑应该使用抽象类还是接口? ❑到底什么才是真正的面向对象编码,我这样编程够面向对象吗? ❑什么是单元测试,如何编写单元测试? 如果你也曾经问过自己类似的问题,说明你已经为成为专业程序员做好了准备;如果你还苦于找不到问题的答案,那么本书正是为你准备的。本书为那些普遍存在于初级开发者脑海中的问题给出了经验性的解决方案。我尽可能多地罗列问题并给出解决方法(同时给出错误的方法和正确的方法,以及好的方法和更好的方法,并进行分析和比较)和建议,并且尽…