当 T 本身是一个类型时,为什么必须使用 typeof(T) 来获取 Type
本文关键字:typeof 获取 为什么 Type 类型 一个 | 更新日期: 2023-09-27 18:31:09
例如
Type t = typeof(T);
t.GetProperty("Company")
因为T
不是Type
对象,所以它只是一个类型参数。
在编译时,类型参数将替换为实际类型。例如,对于为 string
类型生成的代码,typeof(T)
实际上是typeof(string)
。这里string
不是一个Type
对象,它只是一个数据类型。您需要typeof
来获取该数据类型的Type
对象。
因为类型与描述类型的对象之间存在差异。
T
是一种类型。 typeof
应用于类型,并返回类型为 Type
的对象,该对象描述相关类型。
另一种解释差异的尝试:
有编译时类型,如string
、int
或MyClass
。您在编写代码时声明了它们。
有运行时类型。它们保存在类型 Type
的对象中。这些是运行时存在于内存中的普通对象实例。您可以通过类型(MyType
)获得这样的对象。这些类型对象可用于在运行时检查类型。