Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将using语句放入命名空间失败_C#_Namespaces - Fatal编程技术网

C# 将using语句放入命名空间失败

C# 将using语句放入命名空间失败,c#,namespaces,C#,Namespaces,我试图用stylecop对一些旧代码进行适当的样式化。它要求将using语句放入其中。它起作用了 除了一个人之外,其他人都很好。我已将问题简化为以下代码 namespace B.C { using System; public class Hidden { public void SayHello() { Console.WriteLine("Hello"); } } } namespac

我试图用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指令或程序集引用?)


如果我使用B.C移动在名称空间A.B.C上方,然后正确构建。隐藏的类是由不同的团队开发的,我们无法修改它。

因为您在命名空间
A
中,那么
B.C
实际上将是
A.B.C

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

using global::B.C;

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

指定它。可能
B.C
命名空间在命名空间
A.B.C
范围内时,命名空间被错误地计算为
A.B.C
?当处于全局范围时,它不知道任何名称空间,因此首先在
A
A.B
)中找到
B
,而不是假设
B
)。值得注意的是,这不仅在using语句中,而且在任何地方都可以逃离名称空间地狱。(例如,新的全局::MyNS.BlahBlah())