1

例如

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

3 回答 3

7

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

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

于 2012-04-16T07:34:55.297 回答
1

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

T是一种类型。typeof应用于一个类型,并返回一个 type 的对象Type,它描述了所讨论的类型。

于 2012-04-16T07:38:12.290 回答
0

另一种解释差异的尝试:

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

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

于 2012-04-16T07:55:48.497 回答