【黑马程序员】string,StringBuilder(学习笔记)

本文详细解释了在.NET框架中String与StringBuilder类的区别,尤其是在字符串拼接操作中的性能表现。通过对两种类型的深入分析,帮助开发者了解何时使用StringBuilder能显著提高程序效率。

------- WindowsPhone 7手机开发.Net培训、期待与您交流! -------

String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

简单的说string是引用类型,具有不可变性
如: string  str="Hello";  //str变量指向"Hello"
       str="World";  //改变了str的指向,指向"World",而原来的字符串"Hello"仍然存在,只是没有变量指向它                  
对很长的或需要频繁操作的字符串,往往消耗大量的资源
而StringBuilder允许直接修改字符串本身的内容,而不是每次操作都生成新的字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值