如何使enum
变量在某个Arithmetic progression中递增?
例如:
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
现在值将增加1.如何递增值让我们说再见2?类似的东西:
enum Days {Sat=2, Sun=4, Mon=6, Tue=8, Wed=10, Thu=12, Fri=14};
我是否必须为每个元素手动执行此操作?
答案 0 :(得分:1)
是的,在实践中你必须手动完成 - 但真的是否需要这样做?
未使用FlagsAttribute
修饰的枚举不需要为每个成员分配特定值,因为枚举的主要目的是区分特定的项目集,而不必将这些项目映射到具体价值。根据您需要的数字,使用枚举外部的映射解决方案很可能是更好的软件工程。
理论上,您也可以使用T4 template以编程方式执行此操作;你会编写一个代码,从你自己的角度自动生成所需的源代码,但这对于这样一个简单的场景来说是过度的。
答案 1 :(得分:1)
我建议远离这种方法,其中数据以枚举值存储。相反,保持枚举简单并将其用于其设计目的:命名值的枚举。然后使用类似解释器或中介模式的方式将数据存储在其他地方,以便即时访问和修改数据。一种方法是使用集合或字典,其中键是枚举值,值是您的数字。