2

クラスを定義するプログラムがあります

namespace @default
{
    public class Test
    {
    }
}

次に、名前空間を持たない別のライブラリを というクラスで参照しますTest。プログラムが他のライブラリ クラスとして認識されTestないように、この他のライブラリ クラスを非表示にするにはどうすればよいですか?@default.TestTest

4

2 に答える 2

4

デフォルトでは、default名前空間内で、default.Testクラスはあなたが言うときに使用されるものですTest

名前空間の外defaultでは、using ステートメントで次のようなことを行う必要があります。

using ExternalTest = global::Test;
using Test = default.Test;

global::Testどこでも使用できるため、最初の行は厳密には必要ありません。

これまでにグローバルに遭遇したことがない場合:グローバル (C# リファレンス)

于 2012-08-17T00:02:41.437 に答える
1

識別子名の前に接頭辞を付けてglobal::、グローバル(名前のない)名前空間から始まることを示します。例えば:

class Test { }

namespace Default {
    public class Test {
        global::Test theOtherOne;
    }
}

偶発的な名前の衝突を避けるために、自動生成されたコードで使用されることがよくあります。Resources.Designer.csのように

于 2012-08-17T00:42:35.717 に答える