string 与 stringbuilder有哪些区别?还有string 与 String呢?
解决方案 »
- System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 "CompanySite"。登录失败。
- 关于ListBox的问题
- c#焦点问题
- sql 参数化问题!
- .net 的textbox的Validating 事件 反应太慢
- 请问在两个用户控件之间怎样传输参数?
- 求实现这样功能所需要的设备
- 一个关于输入输出流的简单问题。请高手指教。
- 这样做进度条行不行
- Dos命令大侠 每日自动备份,谁会呀
- 数据控件绑定的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- vs2003/vs2005用了一段时间了,谈谈c#与vb.net的区别?
stringbuilder则是可变的,在缓冲区内部修改
sb.append("a");
sb.append("b");
sp.tostring();
可以得出ab,相当于字符串+的方法~~
-----------------------------------------------
string 类型表示 Unicode 字符的字符串。string 是 .NET Framework 中的 String 的别名。字符串是不可变的 - 字符串对象一旦创建,其内容就不能更改。尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。
当stirng 类需要修改的时候,在内存中只是又开辟一个堆空间,让栈对象重新指到这个新开堆空间,原来的堆空间等待GC收回,这样如果多次做修改的操作,会很占内存的,会开辟很多堆空间。stringbuilder类则不同,你可以指定具体大小的堆空间,如果有增加字符的操作,直接在这个堆空间操作,如果指定的大小不够,它会成倍数去增长。
大概说了下,具体的实现你在查查。
反正遇到字符串修改或连接的操作 最好用stringbuilder
同意楼上的楼上的说法。