例如:Type.GetType(".System.Collections.ArrayList", false, false)
和 Type.GetType("System.Collections.ArrayList", false, false)
。
我曾认为它们是等价的,但我注意到前者解析时间是后者的两倍,并且进一步调查后,我找不到对前者的明确支持:http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx。
它们是否等价,如果是,有什么想法可以解释为什么前者解析时间是后者的两倍?
.
开头是在说“查找‘全局’命名空间”...从实际角度来看,如果您有一个“打开”的命名空间列表,您想尝试解析可能不完全限定的类型名称,那么使用类似[""; "System"; "System.Collections"]
的列表更容易处理,其中""
表示这个虚构的“全局”命名空间,这样您就可以尝试使用.
分隔符将命名空间列表与可能的类型名称组合起来,而无需特殊处理可能完全限定的类型名称。 - Stephen SwensenType.GetType("..",true,true)
将导致异常消息 "Could not load type '.'" ... 在某个地方,它会剥离单个前导句点并忘记它曾经这样做过。 - Stephen Swensenlet withNamespace tyName ns = if ns = "" then tyName else ns + "." + tyName
来连接命名空间(包括我的概念上的全局命名空间用一个空字符串表示)和类型名称。 - Stephen Swensen