Невозможно изменить числовые значения констант перечислимого типа, поскольку они являются постоянными.
можно связать отдельное значение с перечислимого путем создания словаря, но это не приведет к изменению значений констант перечислений себя:
private static IDictionary<Items,int> AssociatedValue = new Dictionary<Items,int> {
{Items.pen, 5}, {Items.watch, 4}, {Items.rubber, 1}, {Items.ruler, 8}
};
Теперь вы можете установить
AssociatedValue[Items.watch] = 6
но вам нужно будет использовать AssociatedValue[enumVal]
вместо (int)enumVal
, когда вам понадобится целочисленное значение.
И почему вы хотите это сделать? Вы можете изменить его в объявлении перечисления напрямую, поэтому установка 6 вместо 4. Изменение его после того, как оно назначено, похоже на странный случай использования. –
Перечисления в основном представляют собой набор именованных констант, поэтому переопределение значения невозможно. – CalebB
Единственный способ сделать это - перекомпилировать сборку, которая объявит «Элементы». – MarcinJuraszek