如何通过枚举中的某个常量使默认增量值

本文关键字:默认 常量 枚举 何通过 | 更新日期: 2023-09-27 18:20:16

如何使enum变量在某个算术级数中递增?

例如:

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};

我必须为每个元素手动执行此操作吗?

如何通过枚举中的某个常量使默认增量值

是的,在实践中,您必须手动执行,但您真的需要这样做吗?

没有用FlagsAttribute修饰的枚举不需要为每个成员分配特定的值,因为枚举的主要目的是在特定的一组项之间进行区分,而不必将这些项映射到特定的值。根据您需要数字的用途,使用枚举外部的映射解决方案很可能是更好的软件工程。

从理论上讲,您还可以使用T4模板以编程方式完成此操作;您可能会编写一些代码,从您自己的角度自动生成所需的源代码,但对于这样一个简单的场景来说,这太过分了。

我建议远离这种方法,因为数据是用枚举值存储的。相反,请保持枚举的简单性,并将其用于其设计目的:命名值的枚举。然后将数据存储在其他地方,使用解释器或中介器模式来动态访问和修改数据。一种方法是使用集合或字典,其中键是枚举值,值是数字。