枚举中的数字常量(c#)

Eri*_*itz 1 c# enums constants numeric

我在SharePoint Web部件中创建此选择框,需要使用当前版本下拉,因此我需要使用枚举.

public enum SelectVersionEnum { 2010, 2007 };
Run Code Online (Sandbox Code Playgroud)

那么你可以看到它在哪里断开,有没有办法在枚举中使用整数?最重要的是我想使用

public enum SelectVersionEnum { 2010=14, 2007=12 };
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 7

枚举成员必须是有效的C#标识符.
他们不能从数字开始.

相反,你可以使用像Office2007, Office2010V2007, V2010.


ang*_*son 7

不,您不能使用整数名称命名枚举.

枚举值名称是普通标识符,必须遵循与其他所有内容相同的规则.

但是,您可以使用:

public enum SelectVersionEnum
{
    Version2007 = 12,
    Version2010 = 14
}
Run Code Online (Sandbox Code Playgroud)

此外,Enum.Parse即使字符串中描述的值不存在,也可以将带有整数的字符串解析为其对应的枚举值.

LINQPad中尝试以下操作:

void Main()
{
    Enum.Parse(typeof(SelectVersionEnum), "12").Dump();
    Enum.Parse(typeof(SelectVersionEnum), "14").Dump();
    Enum.Parse(typeof(SelectVersionEnum), "2007").Dump();
}

public enum SelectVersionEnum
{
    Version2007 = 12,
    Version2010 = 14
}
Run Code Online (Sandbox Code Playgroud)

输出:

Version2007
Version2010
2007

如果您定义以下内容,您认为会发生什么:

public enum SelectVersionEnum
{
    12 = 14,
    14 = 16
}
Run Code Online (Sandbox Code Playgroud)

字符串"14"现在是"12"还是"14"?