提高C#编程水平的50个要点

        1.区别值类型和引用类型

  2.使用不可变的值类型(Immutable Atomic Value Types)

  3.在值类型中,确保0是一个合法的数据

     4.理解 ReferenceEquals, static Equals, instance Equals 和 比较运算符(==)之间的关系

        5 .理解 GetHashCode方法的缺陷

     6.总是用属性 (Property) 来代替可访问的数据成员

  7.在 readonly 和 const 之间,优先使用 readonly

  8.在 as 和 强制类型转换之间,优先使用 as 操作符

    9.使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if

   10.总是为自定义类重载 ToString 方法

    11.在编写循环时,优先使用 foreach.

  12.在定义变量的时候就将其初始化

  13.使用静态构造函数来初始化静态成员变量

  14.用多个构造函数时,利用构造函数链

  15.使用using和try/finally来处理资源的释放

  16.尽量避免产生资源垃圾

  17.尽量避免使用装箱(boxing)和拆箱(unboxing)

  18.实现类的 Dispose 方法

  19.在接口和继承(Inheritance)之间,优先使用接口(interface)

  20.区分接口和重载(overrides)

  21.用委托(delegate)来实现回调(callback)

  22.用事件(event)来定义外部接口

  23.避免返回类内部成员的引用

  24.使用元数据来控制程序

  25.优先使用可序列化(serilizable)类型

  26.对需要排序的对象实现IComparable和IComparer接口

  27.避免使用 ICloneable接口

  28.避免使用类型转换操作符

  29.只有当基类加入了与派生类中现有的函数名称相同的函数时,才需要使用 new 操作符

  30.尽量使用 CLS-Compliant

  31.尽量编写短少,简单的函数

  32.尽量编写比较小的程序集(assembly)

  33.限定类型的可见性(visibility)

  34.编写大粒度的 web API

  35.在使用事件时,优先继承基类事件,而不是重新创建一个事件

  36.多使用 framework 的运行时调试 (DEBUG, TRACE, EVENTLOG等)

  37.使用.net标准的配置机制

  38.使用并且在类中支持.net的数据绑定功能 (Data Binding)

  39.使用.net的验证机制 (Validation)

  40.根据你的需求选择正确的集合类(Collection)

     41.尽量使用安全代码 (safe code)

  42.多多学习、使用外部工具和资源

  43.准备使用 C# 2.0

    44.学习 ECMA 标准

  45.在自定义结构中使用 DataSet

  46.利用属性(Attributes)

  47.不要过度使用反射(Reflection)

  48.创建完整的,应用程序特定的异常

  49.尽可能多的考虑程序可能出现的异常,并作出处理

  50.尽可能少的使用 Interop