文章内容

2017/9/1 9:04:40,作 者: 黄兵

提升c#代码的质量方法

1  公共方法尽可能的使用缓存

2, 对于不改变的变量,用常量代替 

3  用Linq代替大量的foreach查询

 4  MyType t=(MyType) t和t as MyType的效率比较,后者效率好,而且转换失败后不会抛出异常

 5  List 代替Array ,Haset ,Dictionary 代替Hashtable​


.NET的内置的方法,string.Join可以将字符串数组连接成由一个分隔符号连接的一个字符串。​

6  使用并行技术改善系统效率

Parallel.ForEach可以充分利用多核的,提供系统性能。对于一些不需要考虑对数据的前后顺序操作的地方,均可以用这个方法改善。比如删除临时文件。对于需要考虑操作顺序的数据,比如清空数据表数据,要先清除子表,再删除主表,否则会引起外键冲突。应当用lock锁定要删除的数据表,提取出数据后,再进行删除。

 

7  使用Linq和Lambda表达式改善系统的写法

对于只有几行的方法,可以用Lambda来替代。如果方法很通用,可以写成通用的方法。对DataTable的循环遍历操作,首选Linq技术,可减少出错的机率,也使代码简化。

8 字符串操作

简单的操作不改变,复杂的匹配与查找改用正则表达式,同时要考虑Encoding的问题。

9 公共方法的提取与扩展方法

static类型的公共方法如果过多,因为GC无法回收内存,会影响系统的效率。可以考虑用扩展方法替代,编译时直接被替换为原始类型的静态方法调用。一般添加扩展方法的类型为.NET系统类型,自定义的类型添加扩展方法很少。

1、避免拆箱装箱:

#基础数据类型和Struct、Enum属于值类型,引用类型包括类、数组、接口、委托以及字符串(String),不错,字符串也属于引用类型;值类型会以栈(Stack)的形式存储在内存,引用类型会以堆(Heap)的形式存储(这个概念也就是C语言的指针)。值类型转换为引用类型称为装箱,反之称为拆箱。

装箱拆箱会影响程序性能,我们在程序中应该尽可能避免

2、避免不必要的ToLower()和ToUpper()

同上一样,都会创建新的字符串对象,如果没有必要尽量减少使用,也可以使用Compare方法来比较字符串。

3、避免不必要的异常捕获

也许你对事物的考虑过于复杂,对于异常的捕获也过于敏感,于是Try...Catch就用得多一点,那么建议还是在该用的时候才用,不该用的时候不用。

4、使用存储过程

频繁的SQL语句在Web服务器传递到数据库服务器上来回传输会影响程序执行的效率,更为有效的方式就是把语句比较复杂和需要比较频繁使用的SQL语句封装成存储过程进行调用

分享到:

发表评论

评论列表