C# 更改枚举中项目的 int 值

C# Change int value of item in enum

我有这个枚举

 enum Items { pen = 5, watch = 4, rubber = 1, ruler = 8};

并且我想将 watch 的值(现在是 4)更改为 6。所以像这样:

Items.watch = 6;

但这不起作用。有什么想法吗?

无法更改枚举常量的数值,因为它们是常量。

您可以通过设置字典将单独的值与枚举相关联,但这不会更改枚举常量本身的值:

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

枚举的值在编译时是固定的。根据Microsoft's C# documentation:

The enum keyword is used to declare an enumeration, a distinct type that consists of a set of named constants called the enumerator list.

注意术语 "constants"。如果要更改枚举条目的整数值,则必须重新编译代码。