各位大侠,谁能帮小弟解释下C#中的类“system.ValueType”,此类继承自object

2025-01-25 04:23:44
推荐回答(2个)
回答1:

valuetype的确是类类型,但是他的子类却是值类型,这是因为clr对他的子类经过了特殊的处理。clr若判断某类继承自valuetype,那么会在内存分配方面使它具有值类型的特征(例如直接分配在栈上),这和类库的继承层次结构并无多大关系。
C#这边的编译器也经过了特殊处理,使值类型在诸多方面不同于类类型,例如,我们不可以声明一个继承自valuetype的值类型等等。

回答2:

ValueType是值类型的基类,并不是类类型。