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

时间:2015-12-08 03:01:15

标签: c# enums setvalue

我有这个枚举

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

我希望将watch(现在是4)的值更改为6.所以像这样:

Items.watch = 6;

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

2 个答案:

答案 0 :(得分:7)

枚举的值在编译时是固定的。根据{{​​3}}:

  

enum关键字用于声明枚举,这是一个由称为枚举器列表的一组命名常量组成的不同类型。

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

答案 1 :(得分:2)

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

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

AssociatedValue[Items.watch] = 6

现在你可以设置

AssociatedValue[enumVal]

但是当您需要整数值时,必须使用(int)enumVal代替{{1}}。