Object实例有一个特定的内存布局.为了节省空间并与本机代码(COM,p/invoke等)兼容,值类型的实例不符合该布局.
"boxing"将值嵌入到具有预期布局的实际"对象"实例中.这使得能够通过在object实例上工作的所有各种函数进行多态使用并期望该接口.
说这Int32是一个子类是非常不正确的Object."boxed Int32"是,但"unboxed Int32"实例根本没有任何基类子对象.(除此之外,object布局包括指向实例的实际派生类型的指针.值类型对象的类型由它们与其他东西的关系决定,它们不包含类型元数据.或者监视器.或者全部其他的好东西object.盒装版本.)