string与StringBuilder的优劣

ilingyue 2006-10-27 04:49:34
大家都知道StringBuilder类可以在原来的字符的串上更改字符串内容,

而string对象是恒定的,不可改变的,string的所有方法都仅仅是返回一个新的string对象,而原对象不会改变。

我想知道string类的优势在哪? StringBuilder类的劣势在哪?
为什么不可以把两个类合做一个类?
(既然是两个类,一定不能合的,我只想知道原因)

请各位仁兄帮忙解答!!
谢!
...全文
242 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
股神 2006-10-27
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xingd/archive/2005/02/05/102243.aspx
ilingyue 2006-10-27
  • 打赏
  • 举报
回复
微软完全可以把string和StringBuilder的优点集合起来做成一个类
为什么分开做,一定是各有优劣,
我就是想知道优劣何在?
(到网上搜了一下,大多都是讲StringBuilder的用法)
冷月孤峰 2006-10-27
  • 打赏
  • 举报
回复
对字符操作太多的情况下建议用 StringBuilder
比如:
string a = "adsfadsf" ;
for( int i = 0 ;i < xx.count;i++)
{
a=a+"xx" ;
}
这个时候最好用 StringBuilder 比较合适。
FirstNet 2006-10-27
  • 打赏
  • 举报
回复
学习!
ZiRRen 2006-10-27
  • 打赏
  • 举报
回复
String 会产生很多副本,影响性能.
diandian82 2006-10-27
  • 打赏
  • 举报
回复
string 的优势就是使用方便,劣势是效率太差,而且占资源多.如果遇到大的对象
string a ="many many chars...";
string b = a + "啊啊";
这时,如果a没有用后,要等垃圾回收,在垃圾回收之前就会有两份copy在内存里面.

而StringBuilder我觉得没什么劣势啊?他操作字符串很灵活,我觉得他应该是使用数据结构种的链表实现的.
Ivony 2006-10-27
  • 打赏
  • 举报
回复
StringBuilder的优势是在String要做很多操作时,如大量的替换和串联,这个时候String每一次操作都会产生一个新的String对象,严重影响性能,而StringBuilder可以避免这个问题。也就是说在操作量不大的情况下,StringBuilder反而是没有性能优势的。
Ivony 2006-10-27
  • 打赏
  • 举报
回复
StringBuilder又不是String,更不可能代替String来使用。String永远是只读的,StringBuilder也不可能修改,StringBuilder修改产生的也是一个新的String。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧