在中间添加枚举

Viv*_*kla 5 c# enums

我偶然发现了一个代码,我的同事最近修改了现有的枚举,并在最后一个枚举之前添加了另一个枚举,我猜他可能已经这样做了,因为最后一个枚举是None(我们不在同一个时区讨论).

我担心的是,如果解决方案中的任何代码试图获取None Enum的整数值(幸运的是我无法找到它,但是将来某些代码会尝试做什么),那么这可能会产生错误的结果.

这不安全吗?

  1. 在最后添加枚举
  2. 或者将整数值与每个枚举相关联,以便解决排序问题?

请多点亮一点.

更新: 在其中一个问题中,我读到@Marc Gravell提到插入中间是危险的,我是否理解正确?请参阅/sf/answers/890123041/

das*_*ght 5

enum列表中的任何位置添加新值都没有问题,因为当enum重新编译新的代码时,编译器会为所有值计算出正确的序数.

如果旧的实例enum持久存在于数据库中,则会出现问题.在这种情况下,显式分配值将是一个更好的选择,因为重新编译不会更改存储的值,并且在检索时会转换为不正确的值.

  • @Vivek_Shukla除非您执行if(someEnum == 1)或其存储在DB中的操作.没有分配号码你会没事的 (2认同)