带有int的枚举表示为十六进制值

Kri*_*son 2 c# enums

我有以下枚举

public enum GridType
{
    Walkable = 0xFF000000,
    UnWalkable = 0xFF00000,
    Walked = 0xFF00000,
    Start = 0xFF00000,
    Destination = 0xFF00000
}
Run Code Online (Sandbox Code Playgroud)

int值表示argb颜色值.(我知道它们是相同的值,以后我会放入真实的值)


但是编译器会抛出错误:

无法将类型'uint'隐式转换为'int'. 存在显式转换(您是否错过了演员?)

我该怎么做才能解决这个问题?

Jim*_*hel 8

你可以GridType使用uint:

public enum GridType: uint
{
    Walkable = 0xFF000000,
    // etc
}
Run Code Online (Sandbox Code Playgroud)

请参阅http://msdn.microsoft.com/en-us/library/vstudio/sbbt4032(v=vs.100).aspx

我以为你可以投,但根据评论,这是行不通的.