gpt4 book ai didi

c# - 装箱和拆箱的幕后花絮

转载 作者:行者123 更新时间:2023-11-30 22:37:46 33 4
gpt4 key购买 nike

有人可以解释一下我们执行装箱和拆箱时幕后实际发生的事情吗?我知道装箱是将值转换为引用类型,而拆箱则相反,但在装箱的背后,装箱的变量实际上存储在堆中,装箱和拆箱的基本用途是什么?

谢谢!

最佳答案

根本没有魔法,只是保持简单......
装箱是将值类型实例转换为引用类型实例的行为。
拆箱通过将对象(引用类型)转换回原始值类型来反转操作。

所以你必须了解value-typereference-type 之间的区别,还有 堆栈

值类型 - 内置类型,如 int、string、char、double 和 struct - 存储在称为 STACK
的内存块中引用类型 - 类、委托(delegate)、对象 - 存储在称为HEAP

的内存块中

Stack vs Heap

现在,当您理解了上图后,让我们看一下真实、简单的代码。

    int i = 1;       
object O = i; // Box the int
int j = (int)O; // Unbox the int

enter image description here

关于c# - 装箱和拆箱的幕后花絮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370873/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com