本帖最后由 ssjun 于 2013-7-4 09:26 编辑
1. 正确操作字符串 a.确保尽量少的装箱,避免分配额外的内存空间 b.不要使用+ c.使用StringBuilder类型,或使用string.Format方法 2. 使用默认转型方法 a.使用类型的转换运算符 如 string a=”4”;int b=(int)a; b.使用类型内置的Parse,TryParse,或者如Tostring,ToDouble,和ToDateTime等方法 c.使用帮助类提供的方法,如System.Convert类,System.BitConverter类来进行转换 d.使用CLR支持的转型,就是基类和子类之间的转换 3. 区别对待强制转型与as 和is a.强制转型用as 操作符,但它不能操作基元类型。如果涉及到基元类型,请需要通过 is转型前的类型来进行判断,以避免转型失败 4. TryParse比Parse好 a.Parse转化会引发异常,造成性能损失, b.TryParse不会引发异常,它会返回false.同时将result置为0。建议使用TryParse方法 5. 使用int?来确保值类型也可以为null a.最大好处就是将可空类型的值赋值给对应的基元类型进行简化 b.int j=i ?? 0 表示如i有值为true,则将i的值赋值给j,否则给j赋值为0 6. 区别readonly和const的使用方法 a.const是一个编译期常量,readonly是一个运行时常量 b.const只能修饰基元类型,枚举类型,字符串类型,readonly没有限制 7. 将0值作为枚举的默认值 8. 避免给枚举类型的元素提供显示的值 9. 习惯重载运算符 a.重载运算符+ 10. 创建对象时需要考虑是否实现比较器 a.创建数据类时,如需要排序,可以使用IComparable接口,它会实现排序功能 11. 区别对待==和Equals a.==是用来判断值相等。Equals是用来判断引用的类型是否相等 12. 重写Equals时也要重写GetHashCode 13. 为类型输出格式化字符串 a.如类型会产生格式化字符串输入,可以继承接口IFormattable 14. 正确实现浅拷贝和深拷贝 15. 使用dynamic来简化反射实现 |