Нет, нельзя перечислять перечисления целочисленными именами.
Имя значения перечисления является обычным идентификатором и должно следовать тем же правилам, что и все остальные.
Однако вы можете использовать:
public enum SelectVersionEnum
{
Version2007 = 12,
Version2010 = 14
}
Кроме того, 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
}
Вывод:
Version2007
Version2010
2007
Как вы думаете, что произошло бы, если бы вы определили следующее:
public enum SelectVersionEnum
{
12 = 14,
14 = 16
}
Строка «14» теперь означает «12» или «14»?