编写ASP.NET应用程序的技巧(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:ASP.NET 2.0中构造个性化网页
在WEB应用中,我们经常要创建个性化的网页。什么是个性化的网页呢?举个例子,大家经常使用熟悉的搜索引擎google,当我们设置了每次要使用的个性化语言偏好,比如使用中文后,在下次使用google时

4、使用StringBuilder类

字符串在.NET框架中是不可变的,这意味着改变字符串的操作符和方法会返回字符串的改变后的拷贝,这意味着性能还有提高的空间。当进行大量的字符串操作时,使用StringBuilder类就是一种比较好的选择了。

下面的C#代码测试用二种方式从10000个子字符串中生成字符串所需要的时间。第一次使用了一个简单的字符串串联操作;第二次使用了StringBuilder类。

要想查看结果字符串,可以去掉下面的代码中注解行的注解符号:

以下为引用的内容:
< %@ Page Language=”C#” %>
  < script runat=”server”>

  void Page_Load(Object Source, EventArgs E)

  {

  int intLimit = 10000;

  DateTime startTime;

  DateTime endTime;

  TimeSpan elapsedTime;

  string strSub;

  string strWhole = “”;

  // 首先执行字符串连接操作

  startTime = DateTime.Now;

  for (int i=0; i < intLimit; i )

  {

  strSub = i.ToString();

  strWhole = strWhole “ “ strSub;

  }

  endTime = DateTime.Now;

  elapsedTime = endTime - startTime;

  lblConcat.Text = elapsedTime.ToString();

  // lblConcatString.Text = strWhole;

  // 使用stringBuilder类进行同样的操作

  startTime = DateTime.Now;

  StringBuilder sb = new StringBuilder();

  for (int i=0; i < intLimit; i )

  {

  strSub = i.ToString();

  sb.Append(“ “);

  sb.Append(strSub);

  }

  endTime = DateTime.Now;

  elapsedTime = endTime - startTime;

  lblBuild.Text = elapsedTime.ToString();

  // lblBuildString.Text = sb.ToString();

  }

  < /script>

  < html>

  < body>

  < form runat=”server”>

  < h1>String Concatenation Benchmark< /h1>

  Concatenation:

  < asp:Label id=”lblConcat” runat=”server”/>

  < br/>

  < asp:Label id=”lblConcatString” runat=”server”/>

  < br/> < br/>

  StringBuilder:

  < asp:Label id=”lblBuild” runat=”server”/>

  < br/>

  < asp:Label id=”lblBuildString” runat=”server”/>

  < /form>

  < /body>

  < /html>

二种方式的差别是相当大的:使用StringBuilder类的Append方法的速度比使用字符串连接的速度快近200倍。

分享:ASP.NET中利用存储过程实现模糊查询
一、建立存储过程 在MSSQL中的Northwind数据库中为employess表新建存储过程(作用按LastName进行模糊查询): CREATE PROCEDURE Employess_Sel @lastname nvarchar (20) AS select

来源:模板无忧//所属分类:.Net教程/更新时间:2008-08-22
相关.Net教程