我有许多枚举,其中包含不时更改的长列表
public MyEnumType MyEnum
{
None = 0,
Option1 = 1,
Option2 = 2,
etc..
}
当它们发生变化时,我需要对索引重新编号,因为新选项总是置于现有选项之间。
问题是,如果我删除索引,枚举是否始终遵循从上到下的顺序?
public MyEnumType MyEnum
{
None,
Option1,
Option2,
etc..
}
提前致谢。
最佳答案
是的,他们会的。 如果您想确保值以某个特定值开始,您也可以仅指定第一个元素:
public MyEnumType MyEnum
{
None = 1,
Option1, // -> 2
Option2, // -> 3
}
有关其他详细信息,请查看 the docs .
请注意,在大多数情况下,您的代码不应该关心确切的数值。 当你关心的情况是例如。如果您声明一个枚举,它是外部类型(例如互操作)的别名,那么您需要确保值是相同的。另一种情况是当枚举表示二进制标志时,您需要这样的东西:
[Flags]
public MyEnumType MyEnum
{
None = 1,
Option1 = 2,
Option2 = 4
}
关于c# - 枚举需要索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913751/