取消装箱时,会将装箱的值的副本复制到适当的变量类型中,但是在堆上的装箱的副本的内存位置会发生什么。
装箱的副本是否保留在该位置并覆盖堆上的内存?
最佳答案
是的。毕竟,可能还有其他引用:
object o1 = 5;
object o2 = o1;
int x = (int) o1;
x = 10;
Console.WriteLine(o2); // Still 5
装箱的值就像普通对象一样,当不再有强引用时,它们有资格进行垃圾回收。
关于c# - 拆箱机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37488694/