實值型別和參考型別

來源:互聯網
上載者:User

標籤:blog   http   使用   問題   div   re   

黑馬程式員--鄢振東---------------------- ASP.Net+Unity3D遊戲開發、.Net培訓、期待與您交流! ---------------------- 在C#中,實值型別有:int double decimal bool enum struct .    應用類型有:string  數組  使用者自訂類,等其他的都是參考型別 兩者的區別:1:在儲存區上的區別: 實值型別是儲存在棧上面的,參考型別是儲存在堆上面的。 2:在賦值上,實值型別是直接賦新值給變數,但是參考型別是開闢一塊新的空間來存放新值,並將之前指向舊的值的那個地址改成指向新的值的地址。這就完成了一次賦值的操作。 在對應用類型進行賦值的時候:  首先,我們先從定義和賦初始值開始說起, 參考型別在被申明的時候,首先在堆中開闢一塊記憶體空間,然後將其在堆中的地址賦值給 棧 中的一快空間,這塊空間就是來放一個參考型別在堆中的地址的。然後我 對其進行重新賦值的時候,並不是將堆中的值給改變了,而是在堆中重新開闢了一塊新的空間,然後將堆中的這個地址賦值給  之前這個變數在棧中開闢的那塊存堆中的地址的那個地址,所以之前的那個最先開闢在堆中的空間是不會被消除的,除非.Net FrameWork這個架構中的記憶體回收站自動幫我們完成釋放記憶體的功能,但這是在程式運行結束後才會做,所以我們如果對參考型別的變數  的話,我們應該盡量減少對其的重新賦值,就想string這個參考型別一樣,我們如果需要對字串進行重複的賦值和處理,我們一般不會用string這個字串來處理,   我們一般使用stringBuild 來處理字串重新賦值的問題。  這篇文章的字數可能很少,但是全部寫的是我自己對  實值型別和參考型別的理解。當然,這些也是傳智的老師教的,但是是我用自己的語言寫出來的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.