字符串的處理

 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
相關文章
相關標籤/搜索