c-sharp研发应避免的几个小滥用_c#应用

2008-02-23 05:43:17来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

一 String和StringBuilder

少量的字符串操作不宜采用StringBuilder。
由于string是不可变得对象,对于string的叠加,每次操作都会生成一个新的string对象。所以针对大量string的操作时,我们会采用StringBuilde。但似乎很多人都知道这一点,所以只要字符串相加,不管三七二一都用StringBuilder。其实这是个误区,在这里要注意"大量"一词,少量的字符串操作用StringBuilder反而得不偿失。
比如下面的两种写法:


string sql = "insert into table (,,,)";
sql = " values ()";和
StringBuilder sb = new StringBuilder();
sb.Append("insert into table (,,,)");
sb.Append(" values ()");
string s = sb.ToString();宜采取第一种写法。因为只有两个字符串的相加,谈不上大量。假如用StringBuilder,最后还需要转换成string,结果性能反而差一些。

二 慎用异常

由于程式抛出一个异常,就会创建一个异常对象,然后应用程式会在Catch块中捕获该异常,造成性能影响很大。
比如:
int OrderID;
try
{
OrderID = Convert.ToInt32(this.txtOrderID.Text);
}
catch(Exception e)
{
OrderID = .
}
这样的代码很不合适,造成的性能开销很大。应该在客户端写js代码先去验证txtOrderID是否符合需要。


三 关于Session, Request

Session:
很多人喜欢用Session来保存持久对象的值。 但是当您的程式部署在多台服务器上做负载均衡时,可能会得不到Session保存的变量的值。 另外,由于Session是服务器端的内建对象,每开启一个Session对象,都在服务器上占用一些资源。

Request:
在页面间传值取值时,看到很多人都这么写代码:
string CustomerName = this.Request["txtCustomerName"].ToString();
其实后面的ToSTring()多此一举。this.Request["...."]本来就是string类型的,不必再去ToString()一下。


今天就写那么多吧,要更有其他问题,再补充。


http://www.cnblogs.com/Ring1981/archive/2006/08/04/436612.html


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 用split()方法提取字符_c#应用

下一篇: 在linux中使用c#_c#应用