盒装值只是指向托管堆中存储的值副本的指针吗?

Foo*_*Foo 7 c# boxing

在我看来,这就是我所认为的拳击和拆箱.而已.有人可以确认这是正确的吗?

在此输入图像描述

Ben*_*igt 6

没有.

虽然总体思路是正确的,但它并不完全正确.盒装值是符合内存布局的完整对象System.Object.这意味着v表指针(其提供特定于类型的重载System.Object虚拟方法,如EqualsGetHashCode以及作为型标签,以防止拆箱到不兼容的类型),以及(可选的)同步监视器.

存储在盒装值句柄中的实际地址不是指向内容,而是指向附加的元数据.