值类型Vs引用类型 – 对象类C#
如果值类型和引用类型来自作为引用类型的对象类型,那么值类型如何值类型和引用类型是引用它们都来自引用类型。
基本上,这是一个骗子;-p
任何struct
(即从ValueType
inheritance的任何struct
)都使用值类型语义处理。 但是必要时会有一个拳击转换为object
; 这意味着如果将struct
转换为object
,它将在您的值*中创建一个包含数据(作为克隆)的特殊对象(在托管堆上)。
盒装版本是参考类型。 您可以将此(通过强制转换)取消装回到struct
版本,从而使其反转(将克隆数据从堆上的对象复制到本地值)。
* =除非它是一个空的Nullable
,其中的方框为null
; 同样,将unboxes取消为空Nullable
。