.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
多用用StringBuilder吧

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

如果要操作一个不断增长的字符串,请你不要再用String类了。为什么涕淌要这样说呢?我们来看看两个类的工作原理。

String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。

而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。

当然,一般情况下你是觉察不出这二者效率的差异的,但如果你要对某个字符串进行大量的添加操作,那么用StringBuilder类所耗费的时间和String类简直不是一个数量级的。下面是一个例子,你自己试一试:

Imports System
Imports System.Text

Namespace StringBuilderSample

    Class clsStrBuilder

        Shared Sub Main()
            Dim i As Integer
            Dim startTime As DateTime
            Dim stopTime As DateTime

            '用String类来连接字符串
            Console.WriteLine("String类")
            Dim str As String = String.Empty
            startTime = DateTime.Now
            Console.WriteLine(("开始时间:" & startTime.ToString()))
            For i = 0 To 99999
                str &= i.ToString()
            Next i
            stopTime = DateTime.Now
            Console.WriteLine(("结束时间:" & stopTime.ToString()))

            '用StringBuilder类来连接字符串
            Console.WriteLine("StringBuilder类")
            Dim builder As New StringBuilder()
            startTime = DateTime.Now
            Console.WriteLine(("开始时间:" & startTime.ToString()))
            For i = 0 To 99999
                builder.Append(i.ToString())
            Next i
            stopTime = DateTime.Now
            Console.WriteLine(("结束时间:" & stopTime.ToString()))
        End Sub

    End Class

End Namespace




相关文章

相关软件