string與stringbuilder的區別

2021-08-21 17:48:54 字數 642 閱讀 2766

string

物件是不可改變的。每次使用 system.string 類中的方法之一時,都要在記憶體中建立乙個新的字串物件,這就需要為該新物件分配新的空間。 

stringbuilder

物件是動態物件,允許擴充它所封裝的字串中字元的數量,但是您可以為它可容納的最大字元數指定乙個值,當修改 stringbuilder 時,在達到容量之前,它不會為其自己重新分配空間。當達到容量時,將自動分配新的空間且容量翻倍。可以使用過載的建構函式之一來指定 stringbuilder 類的容量。

兩者的區別:

1. string 物件時恆定不變的,stringbuider物件表示的字串是可變的。stringbuilder是.net提供的動態建立string的高效方式,以克服string物件恆定性帶來的效能影響。

2. 對於簡單的字串連線操作,在效能上stringbuilder並不一定總是優於string。因為stringbuider物件建立代價較大,在字串目標連線較少的情況下,過度濫用stringbuilder會導致效能的浪費,只有大量的或者無法預知次數的字串操作,才考慮stringbuilder來實現。事實上,一般連線次數設定100次以內,根本看不出兩者的效能差別。

3. 當修改字串資訊時,此時不許建立物件,可以使用stringbuilder物件。

String與string的區別

1 string是乙個類,string是一種資料型別.2 string是c 中的類,string是.net framework的類 在c ide中不會顯示藍色 3 c string對映為.net framework的string 4 如果用string,編譯器會把它編譯成string,所以如果直接用...

string與string標頭檔案

先來段 我是在vs2012上實驗的 include stdafx.h include include include using namespace std int tmain int argc,tchar argv cout endl for rit mapstudent.rbegin rit m...

String與string的區別

c 是區分大小寫的,但是我卻發現c 中同時存在string與string,於是我很困惑,於是我上網搜尋了一下,於是我了解了一些小知識。msdn中對string的說明 stringis analiasforstringin the net framework。string是string的別名而已,st...