2009-09-03 5 views
-1

私は2つのネームスペースがあります。純名前空間質問

1)Foo.Bar

2)Another.Foo.Bar

名前空間2内のクラスからは、どのように私は中クラスを参照ください名前空間1? Foo.Barを使用すると、名前空間2に残ります...

これは合理的には願っています!

ありがとうございました。

答えて

9

global qualifierを使用する必要があります。

だけ追加します。

using GFooBar = global::Foo.Bar; 

次にとしてそれを参照してください。これは、(C#の)私のために動作しません

GFooBar.MyClass = new GFooBar.MyClass(); 

または

global::Foo.Bar.MyClass = new global::Foo.Bar.MyClass(); 
+0

治療した - ありがとうございました:) – UpTheCreek

-1

クラス名を完全修飾します。最初の名前空間の型の完全修飾名は、2番目の名前空間の型の完全修飾名と同じではありません。そのタイプのフルネームがAnother.Foo.Bar.SomeTypeあるので

ので、Another.Foo.Bar名前空間内のコードから、あなたがFoo.Bar.SomeTypeを言うことができる、そしてそれは区別だ、あなたの現在の名前空間にFoo.Bar.SomeTypeから(C#で、少なくとも— VBは異なる動作をします)。

+0

:/彼らは異なっていますしかし、おそらくそれはそれと関係がある。 – UpTheCreek

1

これはglobal::Foo.Barが紹介されたコーナーケースだと思います。 global::は外側スコープを意味します。

+0

ハンク:グローバル:: Foo.Barである必要があります。参照:http://msdn.microsoft.com/en-us/library/htccxtad%28VS.80%29.aspx –

+0

ええ、私はすでにチェック/編集していました。 –