string類型不能被繼承,它是密封類,sealed。 一、字元串的特性。 1、不可變性。 2、字元串池。 二、常用方法。 方法不一一寫出來了。 tringbuilder的使用。 大量拼接字元串的時候用。效率比string高。使用: ...
string類型不能被繼承,它是密封類,sealed。
一、字元串的特性。
1、不可變性。
class Program { static void Main(string[] args) { string str = "Hello World!";//一旦創建就不可以被修改。 str.ToUpper(); //所以這樣不可以改變它。 string str1 = str.ToUpper();//但是可以操作它,這是需要變數接受返回值。 Console.WriteLine(str1);//輸出為大寫 } }
class Program { //下麵的例子中,雖然輸出是abcx但,任然不違背上面的結論。 static void Main(string[] args) { string str = "abc"; //堆中創建abc string str1 = "x";//堆中創建x str = str + str1;//堆中創建abcx,然後把abcx的地址賦值給str,而並不是修改abc。 Console.WriteLine(str); } }
2、字元串池。
class Program { static void Main(string[] args) { string s1 = "abc";//先在字元串池中找是否有abc,有就把其地址賦給s1,沒有就創建一個。 string a = "a"; string b = "b"; string c = "c"; string s2 = a + b + c;//a,b,c是三個變數,並不知道具體的值,所以是執行相加的操作,然後創建新的對象。 //並且該對象不會被載入到池裡面。 string s3 = "a" + "b" + "c";// a,b,c是三個具體的值,直接相加後還會向字元串池中找。 } }
二、常用方法。
方法不一一寫出來了。
tringbuilder的使用。
大量拼接字元串的時候用。效率比string高。使用:
class Program { static void Main(string[] args) { string str = "abcd"; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(str); Console.WriteLine(stringBuilder); } }