枚举的基本使用比较简单明了,这里主要是对枚举在实际多人开发中个人理解记录下。
先简单描述下我工作中用枚举的背景。
我是写仪器控制层,需要给业务层提供功能接口。按照开发流程,正常情况下对于接口调用中使用到的枚举参数变量在业务层的DLL中定义。所以,对于业务层的枚举改动后(枚举的成员名未修改,枚举量对应的值发生了变量),导致我控制这层使用到业务层DLL的模块需要重新编译。原因如下:
- 枚举相当于常量,只是常量的另一种表示形识。
- 一旦代码编译好,枚举就成为基本类型(与int 和 float一样),成为一个常量。
所以业务层的枚举增加枚举值后,控制层使用到相应枚举的代码需要重新编译。
更合理的做法是:
- 枚举值定义在被调用层。
- 枚举的值采用设定的固定值,后续增加的枚举值不会影响到先前设定的固定值。
个人理解有限,还没想到更好的办法可以解决在不同DLL中共用同一个枚举定义,如何避免枚举值更改后,不影响到另一方使用者。