0

我知道这是以前的答案,但我似乎无法找到我想要的答案,其他的都太具体了。这是我的一般问题;你如何覆盖一个枚举?这行得通吗?

//Enum in the main class it is defined in
public enum GameDifficulty
{
   i1,
   i2,
   i3
}


//Enum class being imported:
using game1.classwithenum;

//Would this override the enum and replace i1, i2, and i3 with f1, f2, and f3?
public enum GameDifficulty
{
   f1,
   f2,
   f3
}
4

2 回答 2

2

您粘贴的代码不会按原样工作...

您可以做到这一点的唯一方法是将每个枚举放在自己的命名空间中

但即便如此,就类型强制而言, i1 与 f1 不同。

正如 JW 所说,您可以使用 New 关键字来覆盖名称,但您仍然必须通过命名空间访问它,并且 aGameDifficulty.i1不等于 a classwithenum.GameDifficulty.i1

我有一种强烈的感觉,有更好的方法可以做到这一点,你能澄清你想要达到的目标,并提供一个例子吗?

于 2013-06-01T01:09:53.273 回答
1

您不能重命名或扩展现有枚举,但是您可以在创建自己的枚举时从中借用值enum

public enum MyGameDifficulty {
  Recruit = GameDifficulty.Easy,
  Soldier = GameDifficulty.Normal,
  Commander = GameDifficulty.Hard,
  Veteran }
于 2013-06-01T01:48:32.873 回答