(学习笔记)编写高质量代码改善建议-1.基础语言要素
本帖最后由 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. 区别对待==和Equalsa.==是用来判断值相等。Equals是用来判断引用的类型是否相等 12. 重写Equals时也要重写GetHashCode 13. 为类型输出格式化字符串a.如类型会产生格式化字符串输入,可以继承接口IFormattable14. 正确实现浅拷贝和深拷贝 15. 使用dynamic来简化反射实现 很实用的技巧,赞一个~
页:
[1]