'eGame'是'GameLogParser.eGame'和'GuildStats_Shared.eGame'之间的模糊参考

时间:2011-03-25 13:46:26

标签: c#

是否可以告诉编译器这是相同的枚举,因此可以定义两个地方?

public enum eGame
{
    Error,
    AoC,
    Rift,
}

1 个答案:

答案 0 :(得分:1)

虽然这不是同一个枚举。标题表示您有两种不同的类型

GameLogParser.eGame
GuildStats_Shared.eGame

现在,如果它们真的包含相同的枚举名称/值,您可以在两者之间进行简单的转换:

GameLogParser.eGame firstEnumType = eGame.Error;
int firstValue = (int)firstEnumType;
GuildStats_Shared.eGame second = (GuildStats_Shared.eGame)Enum.ToObject(typeof(GuildStats_Shared.eGame), firstValue);
//second should be "Error"

此外,您的标题表示编译时错误,因为您可能没有完全命名您的引用;如果你这样做:

eGame x = eGame.Error;

编译器不知道要使用哪种类型。做这样的事情:

GameLogParser.eGame = GameLogParser.eGame.Error;