关于网友提出的“empty String异常提示 string和stringBuilder什么区别?”问题疑问,本网通过在网上对“empty String异常提示 string和stringBuilder什么区别?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:empty String异常提示 string和stringBuilder什么区别?
描述: 怎么决定该使用哪个呢?
解决方案1:
不涉及装拆箱...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