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 的改變將互不影響(已驗證)。

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