2011-12-04 8 views
4

http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx:私はこれらは同等であったと推測していたが、私は、元気づいたType.GetType(".System.Collections.ArrayList", false, false)Type.GetType("System.Collections.ArrayList", false, false)接頭辞が "。"の型名のType.GetType検索ルールとは何ですか?

は倍の長後者は解決し、さらなる調査時に、私はかつての明示的なサポートを見つけることができないとしてかかります。

これに相当するのですか?その場合は、前者の2倍の理由を解決するのはなぜですか?付属のリンクから

+4

なぜタイプ名を始めるのが理にかなっていますか? ? –

+0

@HansPassant - 私の心の中で、 '.'で始まるのは"グローバルな名前空間 "を見ています...実用的な観点から、あなたが"オープン "名前空間のリストを持っていれば、おそらく完全修飾型の名前ではなく、 '[" "のようなリストで作業する方が簡単です。 "システム"; "System.Collections"] 'ここで' '' 'はこの架空の"グローバル "名前空間を表しているので、' .'セパレータを使用して名前空間リストと可能な型名を結合することができます修飾された –

+0

[型名の文法](http://msdn.microsoft.com/en-us/library/yfsftwz6.aspx)を見ると、先頭の期間が許されるバグのようです。 – Daniel

答えて

0

期間(.)は、名前空間識別子を示します。

私は大手.は、現在のアセンブリ外のものも含め、すべての名前空間がスキャンされるようにするたを推測だろう。

+0

私は同様の考えを持っていましたが、 'Type.GetType(" Collections.ArrayList "、false、false)'は解決しません。 –

+0

@StephenSwensen - 私たちは両方とも間違っていると思います。 :( –

0

ここでは、開いている名前空間はこのコンテキストでは問題にならないため、実際にはグローバル名前空間の概念はありません。

常にルート(グローバル)から検索すると考えてください。 Type.GetTypeはネームスペース内に 'in'ではなく、ネームスペースは一切ありません。ネームスペースを含め、検索対象のタイプを修飾する必要があります。

関連する問題