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

问题描述 投票:0回答:2

如何使

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

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

c# enums
2个回答
1
投票

是的,实际上您必须手动执行此操作 - 但您真的需要这样做吗?

未用

FlagsAttribute

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

理论上,您也可以使用

T4 模板 以编程方式执行此操作;您将编写一些代码,从您自己的角度自动生成所需的源代码,但这对于这样一个简单的场景来说太过分了。


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

© www.soinside.com 2019 - 2024. All rights reserved.