正 文

在使用.NET字符串时保留系统资源


www.7dspace.com  更新日期:2005-11-28 2:21:49  七度空间


StringBuilder类2

你也许会怀疑使用StringBuilder的是否比使用String数据类型更加有效。答案是否——至少现在还不。如果像这样写,StringBuilder的例子并没有更加有效率,因为系统必须重新分配内存以容纳添加到初始化文本末端的新文本。StringBuilder的初始长度是按照所赋的值来设定的。要使代码更加有效,可以使用 Capacity属性来分配足够的内存一处理最终的值,而不用重新分配内存和使得系统变慢。Capacity属性设置了为字符串值所分配的字符数。下面重写前面的代码,从一开始就保留了足够的内存:

VB.NET

Dim sb As New StringBuilder()

sb.Capacity=18

sb.Append(“Builder.com”)

sb.Append(“Rules!”)

C#

StringBuilder sb=new StringBuilder();

sb.Capacity=18;

sb.Append(“Builder.com”);

sb.Append(“Rules!”);

代码从开始就分配了许多内存,因此没有重新分配内存的必要(除非超过了容量)。除了使用Capacity属性分配指定字符数的内存外,还可以使用MaxCapacity属性来设置对象的最大容量。

经常容易与Capacity属性混淆的是Length。Length属性返回字符串值的当前大小,也可设置它来截断或扩展字符串的长度。将长度设置得小于当前值会将字符串截为所设置的长度。下面的代码将初始值截断为“Builder.com”:

VB.NET

Dim sb As New StringBuilder(“Builder.com Rules!”)

sb.Length=11

System.Console.Writeln(sb.ToString())

C#

StringBuilder sb=new StringBuilder(“Builder.com Rules!”);

sb.Length=11;

System.Console.WriteLine(sb.ToString());

4页,页码:[1] [2] [3] [4] 

上一篇:用悲观锁定来解决ADO.NET并发性问题
下一篇:.NET把Windows开发者引入到正则表达式的世界
作者:  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐