为什么在Int32类的定义中父类列表中不存在类System.Object?

时间:2016-06-05 19:34:06

标签: c# .net

以下是元数据中代码定义的屏幕截图:

enter image description here

并且没有人可以否认所有类型都继承自Object类的事实,但在Int32类(以及其他类BTW)的定义中并非如此 我知道VS比我更聪明,但我想知道如果它没有出现在定义中,它如何将Object类保持为父类?

1 个答案:

答案 0 :(得分:0)

还有一个更有趣的问题:如果Object是一个类,因此是一个引用类型,而C#中的所有类型都是从Object继承的,那么它们中的某些类型如何才是值类型呢?

答案是并非所有类型都明确地来自Object。有引用类型和值类型。值类型隐式继承自ValueType类(即'class',因此应该是引用类型,但我们知道所有值类型都不是逻辑上的引用类型。)

值和参考类型之间存在更深层次的分离,因此您无法通过转到元数据来查看它们。您可以在此处详细了解此主题:Is everything in .NET an object?