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");
}
}