1.推荐以Dispose模式来代替Finalize方式
2.选择合适的垃圾收集器:工作站GC和服务器GC
3.在适当的情况下对对象实现弱引用
4.尽可能以using来执行资源清理
5.推荐使用泛型集合来代替非泛型集合
6.初始化时最好为集合对象指定大小
7.特定类型的Array性能优于ArrayList
8.字符串驻留机制是CLR为String类型实现的特殊设计
9.合理使用System.String 和 System.Text.StringBuilder
10.尽量在子类中重写ToString方法
11.推荐的字符串操作:
字符串比较:StringCompare(string str1,string str2){return String.Compare(str1,str2);}
判断是否为空: return str.Length==0
12.for和foreach的选择
推荐选择foreach来处理可枚举集合的循环结构
13.以多线程处理应对系统设计
推荐在多线程编程中使用线程池
14.尽可能少地抛出异常,禁止将异常处理放在循环内
15.捕获异常时,catch块中尽量指定具体的异常筛选器,多个catch块应该保证异常由特殊到一般的排列顺序
16.struct和class的性能比较
基于性能考虑,在特殊情况下,以struct来实现对轻量数据的封装是较好的选择。这是因为struct是值类型,数据分配于线程的堆栈上,因此具有较好的性能表现。
17.以is/as模式进行类型兼容性检查
18.const和static readonly的权衡
const是编译时常量,readonly是运行时常量,所以const高效,readonly灵活。在实际的应用中,推荐以static readonly 来代替const,以解决const可能引起的程序集引用不一致问题,还有带来的较多灵活性控制。
19.尽量避免不当的装箱和拆箱,选择合适的代替方案
20.尽量使用一维零基数组
21.以FxCop工具,检查你的代码