在命名空间内放置using语句失败

时间:2012-09-28 10:59:59

标签: c# namespaces

我试图用stylecop正确设计一些旧代码。它要求将using语句放在里面。有效 除了一个以外的所有人。我已将问题减少到以下代码。

namespace B.C
{
    using System;

    public class Hidden
    {
        public void SayHello()
        {
            Console.WriteLine("Hello");
        }
    }
}

namespace A.B.C
{
    using B.C;

    public class Program
    {
        static void Main(string[] args)
        {
            new Hidden().SayHello();
        }
    }
}

这给出了编译错误错误

  

“无法找到类型或命名空间名称'隐藏'(您是否缺少using指令或程序集引用?)”。

如果我在命名空间A.B.C上方使用B.C; 移动,那么它会正确构建。 Hidden类是由不同的团队开发的,我们无法对其进行修改。

2 个答案:

答案 0 :(得分:15)

当您进入名称空间A时,B.C实际上将是A.B.C

使用global::指定您从根目录中查看:

using global::B.C;

答案 1 :(得分:2)

B.C与A.B.C相冲突。您需要将B.C重命名为其他内容或使用global

指定它