如何将另一个枚举导入我的枚举

时间:2010-07-15 01:55:03

标签: enums

这是我的Enum

public enum MyEnum {Blue,Red};

还有另外一个名为ExternalEnum的外部枚举,我没有也无法更改其源代码,但我可以使用该类,说我知道它有黄色和白色。

我想要做的是拉出外部枚举中的所有元素,使它们成为我的枚举的一部分,即

public enum MyEnum {Blue,Red,ExternalEnum.Yellow,ExternalEnum.White};

有没有办法可以轻松完成这项工作,所以每次我获得新版本的ExternalEnum时,我都不需要手动检查其所有元素?我不想使用extend(子类),因为它们属于不同的包。

谢谢!

3 个答案:

答案 0 :(得分:2)

你所说的是“动态枚举”。

Here is a link在StackOverflow上的上一个问题。

答案 1 :(得分:2)

你可以通过重新定义这样的枚举常量来实现:

public enum ExternalEnum
{
    White, // -> 0
    Black  // -> 1
}

public enum MyEnum
{
    White = ExternalEnum.White, // -> 0
    Black = ExternalEnum.Black, // -> 1
    Red, // -> 2
    Blue // -> 3
}

但是,必须确保枚举常量的整数值不重叠。最简单的方法是首先声明外部常量。没有像自动导入枚举这样的东西。你无法扩展枚举。

答案 2 :(得分:1)

由于您没有指定语言,因此很难帮助您,但我怀疑您在解释语言中所做的事情可能比编译语言更容易。