今天我在C#编译器中遇到了一些稍微奇怪的行为,当摆弄Enums时。
enum FunWithEnum
{
One = 1,
Two,
Three,
Four = 1,
Five = 2,
Six
}
结果:
有人可以向我解释为什么这些值是他们曾经编译过的东西吗?
我最初的猜测与使用枚举时能够拥有别名有关。但我不知道这是否合理。
答案 0 :(得分:4)
根据docs
the 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将返回的内容答案 1 :(得分:2)
我在代码中看到的值是编译器从不分配的值,它是由编码器编写的。 所以