首页 > 开发 > 综合 > 正文

c-sharp开发应避免的几个小滥用

2024-07-21 02:28:45
字体:
来源:转载
供稿:网友

  一 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()一下。

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

国内最大的酷站演示中心!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表