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"。如果要更改枚举条目的整数值,则必须重新编译代码。
我有这个枚举
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"。如果要更改枚举条目的整数值,则必须重新编译代码。