当多个名称具有相同的值时,什么决定将int转换为枚举的结果?

时间:2017-05-16 12:04:27

标签: c# enums casting

免责声明。我不宽恕这种枚举。它会导致混乱并且容易出错。不过,我对我发现的不正常感到好奇。

我正在使用以下代码(fiddle here):

enum Anims{ 
  Donkey = 1, Wonkey = 1, 
  Monkey = 2, Oinky  =2, 
  A = 3, B = 3, C = 3, bb = 4, aa = 4
}

foreach(Anims anim in Enum.GetValues(typeof(Anims)))
  Console.WriteLine((Anims)((int)anim));

我预期的结果是要显示首​​先声明的值。可能是最后分配的值。这一切都没发生。我还在考虑输出中的字母顺序。都能跟得上...

如果存在多个与之对应的值,那么算法决定整数将在枚举中投入的算法是什么?

输出:

  

Wonkey
  Wonkey
  猴子
  猴子
  一个
  一个
  一个
  BB
  bb

0 个答案:

没有答案