值类型Vs参考类型 - 对象类C#

时间:2009-07-30 09:21:51

标签: c# object reference

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

1 个答案:

答案 0 :(得分:12)

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

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

盒装版本是引用类型。您可以将此(通过强制转换)取消装回struct版本,这样可以将其反转(将堆中对象的克隆数据复制到本地值)。


* =除非它是空的Nullable<T>,其中的框为null;同样,null取消装入空Nullable<T>