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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章