public enum sEnum
{
zero = 0, one = 1
}
public int x;
public static void a(sEnum s)
{
x = 3;
if (s == sEnum.one) ...
}
为什么可以在这里检查枚举的值,因为不使用static关键字?在语言规范中记录了哪些内容?
答案 0 :(得分:7)
枚举只是命名值,因此您可以像在任何其他常量中一样在静态上下文中使用它们。
语言规范的第3.4.3节规定:
枚举的成员是枚举中声明的常量
答案 1 :(得分:2)
我认为规格中的14.3是您正在寻找的:
枚举成员的命名和范围与类中的字段完全类似。枚举成员的范围是其包含枚举类型的主体。在该范围内,枚举成员可以通过其简单名称来引用。在所有其他代码中,枚举成员的名称必须使用其枚举类型的名称进行限定。枚举成员没有任何已声明的可访问性 - 如果枚举成员的包含枚举类型可访问,则可以访问该成员。