例如
Type t = typeof(T);
t.GetProperty("Company")
因为T不是Type对象,它只是一个类型参数。
在编译时,类型参数将被实际类型替换。例如,对于为该string类型生成的代码,typeof(T)实际上将是typeof(string). 这里string不是一个Type对象,它只是一个数据类型。您需要typeof获取该Type数据类型的对象。
因为类型和描述类型的对象之间存在差异。
T是一种类型。typeof应用于一个类型,并返回一个 type 的对象Type,它描述了所讨论的类型。
另一种解释差异的尝试:
有编译时类型,string例如int或MyClass。您在编写代码时声明了它们。
有运行时类型。它们保存在 type 的对象中Type。这些是运行时内存中存在的普通对象实例。你可以通过 typeof( MyType) 得到这样的对象。这些类型对象可用于在运行时检查类型。