1、string是不变的,因此每次运算都会重新创建一个string对象。s=s+”abc”;
2、string s4=s1+s2+s3; //s1+s2产生"ab","ab"+s3产生"abc"。产生两个字符串
{
s=s+i.ToString();
}
3、大量的字符串相连会产生大量的中间字符串,字符串是对象,对象的产生是慢的,而且会占用大量的内存。所以要避免大量的字符串的连接操作。使用CLR Profiler进行分析。
4、对象的创建是非常慢和消耗资源的,因此对于需要动态拼接字符串的场合(比如创建SQL语句)用StringBuilder来代替string,StringBuilder内部实现了字符串拼接不会有string的缺陷。
这个SB怎么用?
5、StringBuilder的常用方法:
- Append:N多重载函数;
- AppendLine:自动添加回车的Append
- Replace:和String中的Replace差不多
- ToString()转换为String,卸下重担,很多地方只认string.
- Append链式编程的本质IntBuilder
6、案例:执行动态SQL。
7、有了StringBuilder为什么还要String?.Net的类还是认String,所以StringBuilder创建完了还是要ToString()转换成字符串才能给别人用。