【发布时间】:2018-11-06 08:51:48
【问题描述】:
Type 对象是引用类型吗?
假设我有这个代码:
String s = "AAA";
Type b = s.GetType();
b 是否指向位于堆上的类型对象?
我们如何为抽象类创建 TYPE 对象?
再次这段代码:
String s = "AAA";
Type b = s.GetType();
如果这是一个抽象类,s.GetType(); 如何创建一个 TYPE 对象?
不能创建抽象类的实例。
所以 Object.GetType() 方法,返回一个派生自 System.Type 的类型,即 System.RuntimeType - 这个我明白。但是哪个对象由 typeof(object) 返回?它应该是从 System.Type 派生的类型,因为类型类本身是抽象的。这种类型叫什么名字?
【问题讨论】:
-
一种对象类型不是该对象类的实例。因此 abstract 修饰符不适用于查询类型,但类是抽象的事实最终将作为其类型的属性值(
var abstracttype = typeof(abstract_class);然后abstracttype.IsAbstract将为真)。 -
System.Type 是一个类,所以是的,它是一个引用类型。
-
你为什么想知道这个?你想解决什么问题?