(四) StringBuilder入門
如前面所提及,字符串是常量。這意味著,當你把兩個字符串連接成一個新的字符串時,有一段時間CLR在內存中有三個字符串。因此,例如,當你連接實現如下代碼所示連接時:
string a = "Hello";
string b = "World";
string c = 一個 + " " + c;
實際上,在內存共有四個字符串,包括空格。為了緩和這個字符串連接性能問題並且提供給你一個工具使連接更容易些,.Net框架中提供了一個類StringBuilder。
通過使用StringBuilder動態地創建可變長度的字符串,你克服了CLR字符串中常量字符串這一事實;而且,這樣以來,該代碼變得更具可讀性。下列代碼展示了StringBuilder的使用:
StringBuilder sb = new StringBuilder();
sb.Append("Greetings!\n");
formatString = "{0:$#,###0.00;($#,###0.00);Zero}";
dVal = 129.99;
sb.AppendFormat(formatString, dVal);
sb.Append("\nThis is a big concatenated string.");
Console.WriteLine(sb.ToString());
前面的代碼輸出如下所示結果:
Greetings!
$129.99
This is a big concatenated string.
注意,前面代碼中的"\n"把一個換行符字符插入到字符串中。