1. string a=“a”;
a+=“b”;
a+=“c”;
.......
String 对象串联操作总是用现有字符串和新数据创建新的对象。
StringBuilder 对象维护一个缓冲区,以便容纳新数据的串联。如果有足够的空间,新数据将被追加到缓冲区的末尾;否则,将分配一个新的、更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。
所以不要使用上面的方式追加字符串,因为每次都开辟新的内存空间,用StringBuilder更好。
2. StringBuilder为引用类型(Class也是,所以对一个方法传递类作为参数,对其修改的会在方法外体现出来,无需ref和out)
class Program
{
static void Main(string[] args)
{
String strName; ;
strName = "aobama";
StringBuilder sbName = new StringBuilder();
sbName.Append("shiyuantailang");
changeStr(strName);
changeStr(sbName);
Console.WriteLine(strName); // aobama
Console.WriteLine(sbName.ToString()); // shiyuantailang,aobama
}
static void changeStr(String str)
{
str = "ladeng";
}
static void changeStr(StringBuilder sb)
{
sb.Append(",aobama");
}
}