当 T 本身是一个类型时,为什么必须使用 typeof(T) 来获取 Type

本文关键字:typeof 获取 为什么 Type 类型 一个 | 更新日期: 2023-09-27 18:31:09

例如

Type t = typeof(T);
t.GetProperty("Company")

当 T 本身是一个类型时,为什么必须使用 typeof(T) 来获取 Type

因为T不是Type对象,所以它只是一个类型参数。

在编译时,类型参数将替换为实际类型。例如,对于为 string 类型生成的代码,typeof(T)实际上是typeof(string) 。这里string不是一个Type对象,它只是一个数据类型。您需要typeof来获取该数据类型的Type对象。

因为类型与描述类型的对象之间存在差异。

T是一种类型。 typeof应用于类型,并返回类型为 Type 的对象,该对象描述相关类型。

另一种解释差异的尝试:

有编译时类型,如stringintMyClass。您在编写代码时声明了它们。

有运行时类型。它们保存在类型 Type 的对象中。这些是运行时存在于内存中的普通对象实例。您可以通过类型(MyType)获得这样的对象。这些类型对象可用于在运行时检查类型。