1

追加したばかりのソリューションにライブラリ プロジェクトがあり、クラス/列挙型を参照する必要があるときはいつでも使用する必要があります。

using global::MyName.SubName;

(Resharper はこれを自動的に提案します)

どうしてこれなの?なぜ私はできないのですか:

using MyName.SubName;

これは機能しません。そして、これを行っても、次のエラーが発生します。

Error   400 Member 'MyName.SubName.Enumerations.SomeEnum.SomeEnumName1' cannot be accessed with an instance reference; qualify it with a type name instead  
4

2 に答える 2

0

名前空間の競合のように見えるという@kelseyに同意します。それを解決する別の方法は、次のような名前空間エイリアスを使用することです。

using MNSub = MyName.SubName

// ...else where in code
MNSub.MyType varName = new MNSub.MyType();    // etc.

これにより、少なくともより意味のある構文が得られますglobal::...

于 2013-02-15T17:34:20.890 に答える
0

MyName.SubNameあなたが(同名の)何か他のものに隠れているとしか思えません。

詳細については、次の MS の記事を参照してください: 方法: グローバル名前空間エイリアスを使用する

あなたが遭遇しているシナリオを説明していると思います。

グローバル名前空間のメンバーにアクセスする機能は、メンバーが同じ名前の別のエンティティによって隠されている可能性がある場合に役立ちます。

...

ただし、大規模なプロジェクトでは、名前空間の重複が何らかの形で発生する可能性が非常に高くなります。このような状況では、グローバル名前空間修飾子によって、ルート名前空間を指定できることが保証されます。

于 2013-02-15T17:13:58.873 に答える