是否可以在 C# 中仅使用数字来创建枚举?在我的程序中,我有一个变量 Gain,它只能设置为 1、2、4 和 8。我正在使用 propertygrid 控件来显示和设置该值。如果我要创建这样的枚举...
private enum GainValues {One, Two, Four, Eight}
我将我的增益变量设为 GainValues 类型,然后属性网格中的下拉列表将只显示增益变量的可用值。问题是我希望增益值以数字方式读取而不是单词。但我不能创建这样的枚举:
private enum GainValues {1,2,4,8}
那么还有其他方法吗?也许创建自定义类型?
最佳答案
这不是枚举
的工作方式。枚举允许您命名特定值,以便您可以在代码中更明智地引用它。
如果您想限制有效数字的域,枚举可能不是正确的选择。另一种方法是创建一个有效值的集合,它可以用作 yield :
private int[] ValidGainValues = new []{ 1, 2, 4, 8};
如果你想让它更安全,你甚至可以创建一个带有私有(private)构造函数的自定义类型,将所有有效值定义为静态、公共(public)实例,然后以这种方式公开它们。但是您仍然需要为每个有效值指定一个名称 - 因为在 C# 中,成员/变量名称不能以数字开头(尽管它们可以包含它们)。
现在,如果您真正想要的是为 GainValues 枚举中的条目分配特定值,您可以这样做:
private enum GainValues { One = 1, Two = 2, Four = 4, Eight = 8 };
关于c# - 如何使用数字创建枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952192/