Нет, вы не можете называть перечисления целыми именами.
Имя значения перечисления является обычным идентификатором и должно соответствовать тем же правилам, что и все остальное.
Однако вы можете использовать:
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»?
person
Lasse V. Karlsen
schedule
14.03.2011