C# 中的装箱与拆箱
文章目录
- 一、核心概念
- 二、内存结构示意图
- 三、完整示例代码
- 四、关键输出结果
- 五、重要结论
- 六、特殊场景说明
一、核心概念
装箱 (Boxing): 将值类型转换为 object 或接口类型(隐式转换)
在堆(Heap)上分配内存
复制值类型数据到堆
返回对象引用
拆箱 (Unboxing): 将 object 或接口类型显式转换回原始值类型
检查对象是否为有效装箱值
将堆中的数据复制回栈
二、内存结构示意图
装箱前 (栈) 装箱后 (堆) 拆箱后 (栈)
[ int i = 42 ] → [ 对象头 + 42 ] → [ int j = 42 ]
三、完整示例代码
using System;
using System.Collections<