天天看點

C# 中的裝箱與拆箱

  裝箱:将一個資料項(副本)從棧中自動複制到堆中的行為。

int i = 8;  
object o = i;   // 裝箱 // 首先在堆中開辟出一片區域,再将 i 的一個副本放在該區域中。  
                        // 所有引用都必須引用堆上的對象      

   引用關系如下所示:

 PS:o 和 i 的改變将互不影響,因為裝箱使用的是 i 的一個副本。

 拆箱:将一個資料項(副本)從堆中自動複制到棧中的行為。

int i = 8;  
    object o = i;   // 裝箱  
    i = (int)o;     // 拆箱 // 此處使用強制類型轉換(cast)      

         引用關系如下所示:        

        PS:o 和 i 的改變将互不影響(已驗證)。

你們的評論、回報,及對你們有所用,是我整理材料和博文寫作的最大的鼓勵和唯一動力。歡迎讨論和關注!

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。

永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧!

多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。