string是特殊的引用類型,特殊在何處??

對於string這個引用類型是非常特殊一個引用類型。 它有兩點特殊的地方。

 第一點對象分配的特殊。

 例如:

      string str1 = "abcd"; string str2 = "abcd";

 那麼.net在分配string類型的時候,先查看當前string類型列表是否有相同的,如果有的話,直接返回其的引用,否則重新分配。

 第二點對象引用操作的特殊,可以說不同於真正意義上的引用操作。

 例如:

    string str1 = "abcd"; string str2 = str1; str2 = "efgh";// str1 is still "abcd" here

 當對於一個新的string類型是原有對象引用的時候,這點和一般的引用類型一樣,但是當新的對象發生變化的時候,要重新分配一個新的地方,然後修改對象指向。 因此對於string操作的時候,尤其發生變化的時候,會顯得比較慢,因爲其牽扯到內存地址的變化。

 

 對於數據量比較大的字符操作時候,使用StringBuilder來說效率會提升很高。


發佈了10 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章