从静态方法访问非静态枚举值

sea*_*ast 4 c#

public enum sEnum
{
    zero = 0, one = 1
}

public int x;

public static void a(sEnum s)
{
    x = 3;
    if (s == sEnum.one) ...
}
Run Code Online (Sandbox Code Playgroud)

为什么可以在这里检查枚举的值,因为不使用static关键字?这在语言规范中记录在哪里?

Bri*_*sen 7

枚举只是命名值,因此您可以像在任何其他常量中一样在静态上下文中使用它们.

语言规范的第3.4.3节规定:

枚举的成员是枚举中声明的常量