这让我难倒了几分钟。出于某种原因,我不能在“测试”中对常数进行限定。下面的课程。编译器认为' A'是A.A.A'的结束。命名空间,因此不会看到常量。任何人都可以告诉我为什么资格和A.B.Constants.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
}
}
答案 0 :(得分:5)
我无法告诉你为什么会这样(无聊的回答:因为C#规范是这么说的 - 但这并没有给出任何见解)。这是一个解决方法:
global::A.B.Constants.Constants.A enumA;
使用global::
前缀或extern别名。