Type
的所有内容都具有反思性。是因为Type
的使用频率高于System.Reflection
中其他类的使用频率吗?或者因为它的功能更像是系统类而不是反射类?
简而言之,我一直想知道System.Type
位置背后的动机是什么。
答案 0 :(得分:1)
程序集的类型和Assembly
位于System.Reflection
,这很奇怪。
所以我的猜测是,它与Object
实现方法GetType
有关,该方法返回Type
。
答案 1 :(得分:1)
Type类在更多地方使用,而不仅仅是System.Reflection。使用Reflector快速搜索可以看到数百个。它在System.Configuration,System.Data,System.Drawing,System.Linq,System.Windows.Forms等中至关重要。在这些类中实际使用Type实例的方式是不可见的。可能是使用了System.Reflection,但这是一个实际细节,绝不会影响程序。
鉴于创建这些类所需的Type实例对于typeof运算符和object.GetType来说是微不足道的,除非你实际编写反射代码,否则你永远不必使用System.Reflection,Type肯定值得系统中一个易于访问的位置命名空间。
答案 2 :(得分:0)
我想这是因为Object是一个GetType方法。
MS编码练习告诉一个类不应该引用子名称空间中的类型。在实践中,BCL经常违反这一规则; o)