不能完全限定enum,这是一个bug吗?

Pau*_*ema 2 c#

这让我难倒了几分钟.出于某种原因,我无法在下面的"测试"课程中限定常量.编译器认为'A'是'ABA'命名空间的结尾,因此没有看到常量.任何人都可以告诉我为什么资格'ABConstants.Constants.A'在这里不起作用?

namespace A.B.Constants
{
    public class Constants
    {
        public enum A
        {
            A,
            B
        };
    }
}

namespace A.B.A
{
    public class Test
    {
        A.B.Constants.Constants.A enumA; // Error here on the 'B'
        Constants.Constants.A secondEnumA; // This works
    }
}
Run Code Online (Sandbox Code Playgroud)

usr*_*usr 5

我无法告诉你为什么会这样(无聊的回答:因为C#规范如此说 - 但这并没有给出任何见解).这是一个解决方法:

global::A.B.Constants.Constants.A enumA;
Run Code Online (Sandbox Code Playgroud)

使用global::前缀或extern别名.