值类型Vs引用类型 – 对象类C#

如果值类型和引用类型来自作为引用类型的对象类型,那么值类型如何值类型和引用类型是引用它们都来自引用类型。

基本上,这是一个骗子;-p

任何struct (即从ValueTypeinheritance的任何struct )都使用值类型语义处理。 但是必要时会有一个拳击转换object ; 这意味着如果将struct转换为object ,它将在您的值*中创建一个包含数据(作为克隆)的特殊对象(在托管堆上)。

盒装版本是参考类型。 您可以将此(通过强制转换)取消装回到struct版本,从而使其反转(将克隆数据从堆上的对象复制到本地值)。


* =除非它是一个空的Nullable ,其中的方框为null ; 同样,将unboxes取消为空Nullable