c#中String\StringBuilder的异同有哪些?

 我来答
匿名用户
2013-09-08
展开全部
System.String和System.Text.StringBuilder都是对字符串的存储进行操作的,但是它们有本质的区别,下面我们以一个例子说明一下:

String str="hello every one";

str+="Thanks for your come";

表面上看是在原有的字符串后面又追加了个字符串,实际上不是的。而是创建了一个新的字符串,给它分配新的足够内存空间,以保存新的合并起来的它字符串。最初的字符串复制到这个新的字符串再加上现在的字符串,然后存储在变量str中的地址被更新了,使变量指向新的字符串。旧的字符串被撤消了引用,等垃圾回收。

System.Text.StringBuilder str=new System.Text.StringBuilder("hello every one",100);

System.Text.StringBuilder.Append("Thanks for your come");

它是在构造一个字符串的同时分配足够的内存来保存字符串,但是它通常分配的要比需要的更多。在这段代码中分配了100的初始容量,只有执行扩展字符串容量的操作,才会给字符串分配需要的新内存。String.Builder如果检测到容量超出,且该容量没有显示设置新值,就会使自己的容量翻倍。

希望结交编程同行一起探讨问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式