取消装箱时,会将装箱的值的副本复制到适当的变量类型中,但是在堆上的装箱的副本的内存位置会发生什么。
装箱的副本是否保留在该位置并覆盖堆上的内存?

最佳答案



是的。毕竟,可能还有其他引用:

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/

10-15 11:41