这可能是一个非常基础的问题,但我有点困惑。 如果我反射Int32 / Double / 任何值类型代码,我会看到它们是结构体,并且看起来像:
[Serializable, StructLayout(LayoutKind.Sequential), ComVisible(true)]
public struct Double : IComparable, IFormattable, IConvertible, IComparable<double>, IEquatable<double>
{
....
}
那么,为什么我们说.NET中的所有内容都派生自System.Object呢?我觉得我在这里缺少一些关键点。
编辑: 更让我困惑的是,一个值类型(即结构体)如何从一个类(即System.Object)继承。
System.ValueType
,而System.ValueType
又继承自System.Object
。 - Mehrdad Afshariildasm.exe
来查看。在Reflector中,转到mscorlib > System > Int32,Enum,... > Base Types,您将看到System.ValueType。 - Mehrdad Afshari