最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中String StringBuilder StringBuffer類的用法

 更新時間:2017年05月03日 10:35:19   投稿:mrr  
這篇文章給大家簡單介紹下C#中String StringBuilder StringBuffer三個類的用法,需要的的朋友參考下吧

String和StringBuilder和StringBuffer,這三個都是值得深究一翻的,可能很多人會說,實在不行的話,都全部用StringBuilder,啥事沒有,我不能說你的想法事不正確的,但是我可以給出更好的建議。下面簡單介紹一下這三個類。

     String類

  在我們平時的使用當中很容易不注意到的是,自己寫的代碼很容易發(fā)生了裝箱的操作(把值類型轉(zhuǎn)換為引用類型)。就比如很常見的,一個字符串拼接

  string str=9+"test"; 通過查看IL代碼可以知道這里發(fā)生了裝箱的操作。所以建議使用(在把值類型轉(zhuǎn)換為字符串的時候,記得用ToString方法)。所以平時寫代碼的時候,要注意下,裝箱和拆箱的操作(之后推出的泛型集合不就是為了解決裝箱和拆箱的操作)。裝箱操作的過程:把值類型放到托管堆里面分配內(nèi)存,除了值類型本身所分配的內(nèi)存外,內(nèi)存總量還要加上類型對象指針和同步索引塊所占用的內(nèi)存,之后再將值類型的值重新分配到堆內(nèi)存當中,最后再返回引用類型的對象的地址。

 我們知道很多類型(值類型)都自帶了一個ToString方法,為毛用這個就不會發(fā)生裝箱操作呢,很簡單的一個道理,不是有人和你說String是特殊的值類型(雖然他是引用類型),C#語言的設計者,為了做到這一點,他想出了這個方法

把String對象,一旦賦值就不可改變(叫做字符串的恒定性),賦值完了之后,再對String進行拼接,賦值等,都會再內(nèi)存里面重新分配一個新的內(nèi)存空間。

  StringBuilder

  基于上面的問題,string類在重新賦值會重新去分配內(nèi)存空間,所以為了解決這個問題,微軟推出了一個StringBuilder的類??梢钥纯碨tringBuilder類是如何做到不重新分配內(nèi)存的呢。

  通過閱讀StringBuiler類的實現(xiàn),我們可以發(fā)現(xiàn)

   internal const int DefaultCapacity = 0x10; StringBuilder類,默認的大小是16,意思就是說我們?nèi)绻恢付⊿tringBuilder長度,超過16個長度,就會重新去分配一次內(nèi)存。具體實現(xiàn)可以看看StringBuilder類的Append源碼。

     從代碼里面可以看出,我們平時用StringBuilder的時候,一定要指定合適的長度。源碼里面的fixed語句塊(通俗的來講,可以禁止垃圾回收把變量地址給回收了)。

     總結(jié):平時寫代碼的時候應該要注意裝箱拆箱操作,注意stringBuilder的使用。

以上所述是小編給大家介紹的C#中String StringBuilder StringBuffer,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • c#基于NVelocity實現(xiàn)代碼生成

    c#基于NVelocity實現(xiàn)代碼生成

    這篇文章主要介紹了c#基于NVelocity實現(xiàn)代碼生成的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#中Byte轉(zhuǎn)換相關(guān)的函數(shù)

    C#中Byte轉(zhuǎn)換相關(guān)的函數(shù)

    這篇文章主要介紹了C#中Byte轉(zhuǎn)換相關(guān)的函數(shù)介紹,非常具有參考借鑒價值,特此分享到腳本之家平臺供大家學習
    2016-05-05
  • c#實現(xiàn)圖片二值化例子(黑白效果)

    c#實現(xiàn)圖片二值化例子(黑白效果)

    這篇文章主要介紹了c#實現(xiàn)圖片二值化例子,圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果,需要的朋友可以參考下
    2014-08-08
  • 最新評論

    江陵县| 壤塘县| 文水县| 宝鸡市| 绥化市| 京山县| 朔州市| 阳原县| 康保县| 根河市| 屏东市| 文水县| 喀喇沁旗| 明水县| 蒙城县| 丰县| 多伦县| 阿合奇县| 体育| 麻江县| 波密县| 温泉县| 海淀区| 理塘县| 鸡东县| 乌鲁木齐市| 论坛| 黄平县| 枞阳县| 格尔木市| 鹿泉市| 西平县| 顺义区| 舞阳县| 华池县| 措美县| 许昌县| 福海县| 建德市| 开江县| 滦南县|