2

我有一个定义类的程序

namespace @default
{
    public class Test
    {
    }
}

然后,我引用另一个没有命名空间的库,其中包含一个名为Test. 如何隐藏这个其他库Test类,以便我的程序看不到@default.Test其他库Test类?

4

2 回答 2

4

默认情况下,在您的default命名空间内,default.Test该类是您说Test.

在您的default命名空间之外,您需要在 using 语句中执行以下操作:

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

第一行并不是绝对必要的,因为您可以global::Test在任何地方使用。

对于那些以前没有遇到过 global 的人:global (C# Reference)

于 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 回答