当前位置:  编程技术>.net/c#/asp.net

高效C#编码优化原则

    来源: 互联网  发布时间:2014-11-02

    本文导语:  本文汇总了高效C#编码常见的优化原则,对于进行C#程序设计来说有很大的参考借鉴作用。具体列出如下: 1.foreach VS for 语句 Foreach 要比for具有更好的执行效率 Foreach的平均花费时间只有for的30%.通过测试结果在for和foreach都可以...

本文汇总了高效C#编码常见的优化原则,对于进行C#程序设计来说有很大的参考借鉴作用。具体列出如下:

1.foreach VS for 语句

Foreach 要比for具有更好的执行效率
Foreach的平均花费时间只有for的30%.通过测试结果在for和foreach都可以使用的情况下,我们推荐使用效率更高的foreach

另外,用for写入数据时间大约是读取数据时间的10倍左右.

2.避免使用ArrayList

ArrayList的性能低下任何对象添加到ArrayList中都要封箱为System.Object,从ArrayList中取出数据都要拆箱回实际的类型
 泛型集合类的高性能,泛型集合是强类型的

3.使用HashTable字典集合

当存放少量数据时建议使用HashTable取代像StringDictionary,NameValueCollection, HybridCollection这样的字典集合

4.为字符串容器声明常量

为字符串容器声明常量,不要直接把字符串封装在双引号””中,避免字符串对象不断在内存中创建和释放.提高字符串对象的访问效率.

//避免
MyObject obj = new MyObject();
obj.Status = “Active”;
//推荐
const string c = “Acive”;
MyObject obj = new MyObject();
obj.Status = c;

5.使用String.Compare()字符串比较

不要使用UpperCase或LowerCase转换字符串的大小写,再进行比较
使用String.Compare()可忽略字符串大小写进行比较

String strTemp = “Active”;
If(String.Compare(strTemp,”active”,true)==0){
     Consolt.Write(“Equal”);
}

6.使用StringBuilder字符串拼接

①.String类对象是不可变的(只读),对于String对象的重新赋值,本质是重新创建一个新的String对象并赋予新值给该对象.

②.System.Text.StringBuilder 维护一个长度等于Capacity的字符串(可以看作字符数组),当Capacity长度的字符串不足以容纳结果字符串时,StringBuilder开辟新的长度为经过上面的规则计算好的Capacity的内存区域,将原字符串复制到新的内存区域再进行操作,原字符串区域交给GC回收。因此这里也涉及到内存的分配与回收,使用StringBuilder时最好估算一下所需容量,用这个容量初始化Capacity,提高性能。StringBuilder不能保证所有实例成员都是线程安全的,尽管在类型定义中加入了很多线程安全的控制,如果要确保其线程安全,须手工实现线程同步机制。

7.XPathDocument读取XML文件

如果只是读取XML对象的数据,那么用只读的XPathDocument代替XMLDocument,可以提高性能

8.避免在循环体里声明变量,应该在循环体外声明变量,在循环体内初始化变量

//避免
For(int i=0;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:默认编码和平台编码定义及介绍
  • 求救:JAVA 中汉字编码怎样变成 VC 下的汉字编码?
  • 中文汉字编码知识及各种中文编码对应的编码区间总结
  • aix socket进程为何收到客户端的编码都是ISO-8859-1编码?
  • Python获取网页编码的方法及示例代码
  • iconv可以用来转换文字编码,有没有可以用来识别编码的?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 怎么把字符串转为:unicode 编码?又如何把unicode编码转为字符串(有中文)?
  • Base64编码原理详解及c++编码解码实现
  • 谁能给我讲讲UNIX下编码与编码设置与编码转化问题。。。
  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换
  • 在jsp中如何判断传来的字符串是8859-1编码还是gb2312编码方式
  • Linux/CentOS/fedora下vim显示的字符编码设置
  • python处理中文编码和判断编码示例
  • 文件编码及UTF-8、BOM、0XFEFF相关问题
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • 广告系统中weak-and算法原理及编码验证
  • jquery iis7站长之家
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 修改mysql5.5默认编码(图文步骤修改为utf-8编码)
  • windows平台 vs2008进行c++编码的相关设置介绍
  • linux查看系统编码和修改系统编码的方法




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3