今天,当我玩弄枚举时,我从C#编译器中遇到了一些有点奇怪的行为。
enum FunWithEnum
{
One = 1,
Two,
Three,
Four = 1,
Five = 2,
Six
}
结果:
FunWithEnum.One =一
FunWithEnum.Two =两个
FunWithEnum.Three =三
FunWithEnum.Four = 1
FunWithEnum.Five =两个
FunWithEnum.Six =三个
有人可以向我解释为什么这些值是一旦编译后的值吗?
我最初的猜测与使用枚举时能够具有别名有关。但是我不知道这是否有意义。
最佳答案
根据docsthe value of each successive enumerator is increased by 1.
在这个基础上
One = 1,
Two, // = 2
Three, // = 3
Four = 1,
Five = 2,
Six //== 3
而且来自the answer to the other question
当多个枚举具有相同的值时,ToString将返回什么是未定义的