为什么System.Reflection命名空间中没有Type类?

Joe*_*Joe 5 .net c# namespaces design-decisions

一切Type都是反思的.是因为Type比其他类更经常使用System.Reflection吗?或者因为它的功能更像是系统类而不是反射类?

简而言之,我一直想知道位置背后的动机System.Type是什么.

Han*_*ant 1

Type 类用在很多地方,而不仅仅是 System.Reflection。使用 Reflector 进行快速搜索可以发现数百个。它在 System.Configuration、System.Data、System.Drawing、System.Linq、System.Windows.Forms 等中至关重要。Type 实例在这些类中实际使用的方式是不可见的。很可能使用了 System.Reflection,但这是一个不会影响程序的实现细节。

鉴于使用 typeof 运算符和 object.GetType 创建这些类所需的 Type 实例是微不足道的,并且除非您实际编写反射代码,否则您永远不必使用 System.Reflection,因此 Type 当然应该在 System 命名空间中拥有易于访问的位置。