C# 中的装箱与拆箱
转角撞倒猪 原文 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 的改变将互不影响(已验证)。
你们的评论、反馈,及对你们有所用,是我整理材料和博文写作的最大的鼓励和唯一动力。欢迎讨论和关注!
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。