社区交流

类型或者其它类型实现的接口类型

装箱(boxing)和拆箱(unboxing)是 C# 类型系统中一个核心概念。

装箱

装箱是一种隐式转换,它把值类型转换为 object
类型或者其它类型实现的接口类型。

int i = 3;
object o = i; //装箱
i++; //此时 o 的值不变,因为变量的值是在栈上,而对象的值是在堆中。

拆箱

拆箱把 object
类型显式转换到值类型,或者接口类型显式转换到实现该接口的值类类型。

int i = 3;
object o = i; //装箱
int j = (int)o; //拆箱

装箱、拆箱操作会导致堆上内存的分配与回收,如果数据量大,将导致一些性能丢失。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章