您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> empty String异常提示 string和stringBuilder什么区别?

empty String异常提示 string和stringBuilder什么区别?

来源:网络整理     时间:2016/7/24 17:16:30     关键词:empty String异常提示

关于网友提出的“empty String异常提示 string和stringBuilder什么区别?”问题疑问,本网通过在网上对“empty String异常提示 string和stringBuilder什么区别?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:empty String异常提示 string和stringBuilder什么区别?
描述:

怎么决定该使用哪个呢?


解决方案1:

引用 10 楼 niitnanfeng 的回复:
msdn 里有详细的说明,涉及到装箱和拆箱。你自己去那查查,有详细的讲解。

不涉及装拆箱...string是引用类型...
string用于很少改变的字符串...StringBuilder用于频繁变动的字符串或大量字符串拼接... 解决方案2:

String类对象是不可改变的(只读),对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显着。 因为一旦创建了该对象,就不能修改该对象的值
在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过ToString方法返回操作结果,因此,当你需要大量拼接、删除、修改字符串使用 StringBuilder 可以优化性能
http://www.cnblogs.com/monday/archive/2007/04/19/719649.html
http://www.cnblogs.com/ljhong/archive/2008/09/25/1298779.html

解决方案3:

string a="1"; //这一句是在内存中分配了一个空间,或者更专业的说法,是在堆中创建了一个a对象;
a="2";        //这一句又在内存中分配了一个空间,或者更专业的说法,又在堆中创建了一个a对象;
              //原来的a对象作废(即没有指向),以后作为垃圾回收
所以说频繁的操作string理论上来说是非常耗开销的!!
而StringBuilde不存在这个问题,例如:
StringBuilder a = "1"; //在堆中创建了一个对象a!!
a = "2";               //继续使用堆中的a对象,
                       //这两条只使用堆中的一个对象

解决方案4:

String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。


以上介绍了“empty String异常提示 string和stringBuilder什么区别?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2892135.html

empty String异常提示相关图片

empty String异常提示相关文章