我知道有many many个问题涉及这个主题,我已经全部阅读过了。但是我仍然想知道这个:
如果object
是reference type而且object
的所有值类型都是derived,那么说int
这样的值类型是否准确}也是一个引用类型?具体来说,如果我写道:
int i = 10;
i
是否保持10的值,还是持有对10的值的引用的对象?
或者说,通过拳击过程,值类型可以成为引用类型更准确。
答案 0 :(得分:3)
是否准确地说诸如int之类的值类型也是引用类型? ...或者通过拳击过程说值类型可以是引用类型更准确。
两者都不准确。 int
是值类型,句点。它不是"也是参考类型"。盒装时,它并没有神奇地改变为参考类型。包含它的System.Object
是引用类型,但内部仍然是值类型 int
的值。
我是否持有10的值,或者它是一个持有10的值的对象?
见上文。 i
的类型为int
,这是一种值类型,因此该变量包含您已分配给它的值 10
。< / p>
另见What is the difference between a reference type and value type in c#?