1.字符串的鏈接:ide
使用+來鏈接字符串時,避免不一樣類型的值進行鏈接;先將其都轉換爲string類型後再進行轉換。性能
若是不一樣類型的值,必定會產生裝箱操做,產生額外性能的開銷。
ui
1 string a = "a" + 9;//會產生裝箱操做 2 string a = "a" + 9.ToString();
下圖爲1的IL代碼
提示:字符串對象是個很特殊的對象,一旦賦值就不可改變,進行任何計算,都會在內存中建立一個新的字符串對象,也須要爲其分配新的內存空間。spa
解決辦法:能夠使用StringBuilder av = new StringBuilder(a);不過它有個限制,默認長度是小於等於16的,若是所存字符串大於16,這需爲其分配空間,分配均是按照上次的容量加倍,因此咱們必須一開始就爲其分配合適的大小,不然太大也會浪費內存。code
2.string.Format :格式化orm
是在其內部使用StringBuider進行字符串的格式化對象
string a = "a"; string b = "b"; string c = "c"; string d = "d"; string contact = string.Format("{0}{1}{2}{3}", a, b, c, d); 結果:abcd