需要很多次str1+=str2操作,有没有这比+=这方式节省资源的方法呢? 需要很多次str1+=str2操作,有没有这比+=这方式节省资源的方法呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 str1+=str2等价于str1=str1+str2;这是会建立新的字符串对象解决办法StringBuilder strS=new StringBuilder();strS.Append(str1);str.Append(str2);StringBuilder在System.Text命名空间下 String对象用于存储不可改变的字符串,每次使用System.String类中的方法或进行赋值、拼接等运算时,都会在内存中创建一个新的字符串对象,即是为该字符串分配新的内存空间。StringBuilder则不会。 当然是StringBuilder啦你每次的str1+=str2都会为str1在堆内重新申请一块内存~而StringBuilder是动态对象,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。 关于关闭war3进程,问一个别人问过但是答案不明确的问题 有ASP.NET区,建议开个Winform区 为何可以直接调用ReferenceEquals()? 动态生成的控件如何保存 框架页内,A页的按钮空间在提交验证的同时,怎么实现B页面的刷新? 如何做出window桌面的特效,类似瑞星助手狮子的效果 关于CodeSmith4.0 我在VS2005中使用SQL2000,调试程序时遇到下面的问题!!! 反序列化时找不到程序集或它的一个依赖 如何在硬盘上安装VS。NET! 画图过程中出现的奇怪问题:同样的代码在不同的地方居然就画不出来了? 一个小程序,如何解决数据库问题?
解决办法
StringBuilder strS=new StringBuilder();
strS.Append(str1);
str.Append(str2);
StringBuilder在System.Text命名空间下
你每次的str1+=str2
都会为str1在堆内重新申请一块内存~
而StringBuilder是动态对象,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。