string 与stringbuilder 区别? string 与stringbuilder 区别我知道了但是为什么有两个呢?为什么不是只用stringbuild。为什么不只用string 为什么会设计两个。。什么时候用哪个?好处? 求解啊求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 stringbuilder 做字符串拼接 比用 string 拼接要快些string 可以当值类型或者引用类型 试用 在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是不可能改变一个字符串的值。String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象。 baidu了。都说stringbuiler好,性能高。。我就想那还要string干什么 stringbuilder值类型或者引用类型 也可以吧 stringbuilder是用来build string的,string都没了,还要builder干啥 string 是老祖宗,stringbuilder是作了优化的string 这个比喻好。嘿嘿。string 的时候每次都是分配新内存,而做字符串拼接的时候stringbuild 是直接在原有内存上扩展的 stringbuilder做字符拼接更加方便 因为很多时候根本不需要使用 stringbuilder。比如说你写s= a + b;这还用得着多写好几行代码、转换到什么StringBuilder,然后再传唤回来?还有很多时候,程序员注重的是对结果的控制。比如说你测试出两者的差别对于你的程序的价值的影响不值一毛钱,你就没有必要为了死抠这一毛钱的差别去不断地把精力耗在去读各种程序各个代码“规范”这个东西上。你不用注意它,不是因为不懂它的差别,而是因为你有更有价值的东西需要抢着去做。 static void Main(string[] args) { useStringBulider(); // useString(); } static void useStringBulider() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 99999; i++) { sb = sb.Append(i); } Console.WriteLine(sb); } static void useString() { string s = string.Empty; for (int i = 0; i < 99999; i++) { s += i; } Console.WriteLine(s); }运行上面的代码,分别调用这两个方法,什么都不用说你应该就明白了 Winform ToolStripPanel中,包含多个ToolStrip控件的排序问题。 按钮动态添加带参数的函数单击事件 使用tcpclient向tcp端口下发数据帧问题。 打包时,如何让用户自己选择安装所需安装文件 确认机制 求解:输入字符串的格式不正确。 关于线程的初级问题. 序列化时候,类中的中文字符串,需要处理吗? 菜鸟求教:向DataGrid里添加数据?? 请教大家一下静态构造函数是什么时候被调用的?非常感谢!! 这个小程序怎么写 如何取得行数
string 可以当值类型或者引用类型 试用
String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。
这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象。
baidu了。都说stringbuiler好,性能高。。我就想那还要string干什么
嘿嘿。string 的时候每次都是分配新内存,而做字符串拼接的时候stringbuild 是直接在原有内存上扩展的
static void Main(string[] args)
{
useStringBulider();
// useString();
}
static void useStringBulider()
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 99999; i++)
{
sb = sb.Append(i);
}
Console.WriteLine(sb);
} static void useString()
{
string s = string.Empty;
for (int i = 0; i < 99999; i++)
{
s += i;
}
Console.WriteLine(s);
}
运行上面的代码,分别调用这两个方法,什么都不用说你应该就明白了