创建包含其他枚举值的枚举以确保值是唯一的时,最佳做法是什么?

时间:2015-06-30 14:02:43

标签: c# enums

我有这些枚举:

public enum TestEnum1{
    Null = 0,
    A,
    B,
    C,
}

public enum TestEnum2{
    Null = 0,
    D,
    E,
    F,
}

public enum TestEnum3{
    Null = 0,
    A = TestEnum1.A,
    B = TestEnum1.B,
    D = TestEnum2.D,
}

在上述情况下,TestEnum3会重复使用TestEnum 1 & 2中的值,而某些值会重叠。一个简单的方法是制作TestEnum1.A & B = some number,但如果你有很多枚举,这似乎可能会导致问题。

3 个答案:

答案 0 :(得分:3)

试试这个

.gitignore

答案 1 :(得分:1)

枚举是C#中的值类型。

您概述的代码不会重复使用您从另一个变量中分配一个变量的任何值。

恕我直言,最佳做法是直接指定整数值,而不是使用另一个枚举中的整数值。

答案 2 :(得分:1)

你已经可以看到混合枚举的问题会引起你的问题 所以我认为“最佳实践”将是...... 不要这样做

如果你真的必须以某种方式合并它们,你可以制作一个包含一个Enum或另一个的结构。

public struct EnumsCombined
{
     public EnumsCombined(TestEnum1 v) { Enum1 = v; }
     public EnumsCombined(TestEnum2 v) { Enum2 = v; }

     public TestEnum1? Enum1 { get; private set; }
     public TestEnum2? Enum2 { get; private set; }
}