以下是元数据中代码定义的屏幕截图:
并且没有人可以否认所有类型都继承自Object
类的事实,但在Int32
类(以及其他类BTW)的定义中并非如此
我知道VS比我更聪明,但我想知道如果它没有出现在定义中,它如何将Object类保持为父类?
答案 0 :(得分:0)
还有一个更有趣的问题:如果Object
是一个类,因此是一个引用类型,而C#中的所有类型都是从Object
继承的,那么它们中的某些类型如何才是值类型呢?
答案是并非所有类型都明确地来自Object
。有引用类型和值类型。值类型隐式继承自ValueType
类(即'class',因此应该是引用类型,但我们知道所有值类型都不是逻辑上的引用类型。)
值和参考类型之间存在更深层次的分离,因此您无法通过转到元数据来查看它们。您可以在此处详细了解此主题:Is everything in .NET an object?