为什么System.ValueType不是ValueType?

时间:2016-03-22 22:06:16

标签: c#

为什么这个表达

typeof(System.ValueType).IsValueType

返回false?

1 个答案:

答案 0 :(得分:0)

来自MSDN Type.IsValueType Property

  

此属性对 ValueType类返回false,因为 ValueType   不是值类型本身。它是所有值类型的基类,   因此可以为其分配任何值类型。这不会   如果ValueType本身是值类型,则可能。值类型已装箱   当它们被分配到 ValueType 类型的字段时。

来自MSDN ValueType Class (System)

  

虽然ValueType是值类型的隐式基类,但是   无法创建直接从ValueType继承的类。代替,   个人编译器提供语言关键字或构造(例如   结构在C#和Structure ...结构在Visual Basic中)支持   创造价值类型。

因此,因为它是一个类而不是一个结构,所以它会期望它是第一个链接所指出的引用类型。