c# - 以十六进制值表示的 int 枚举

标签 c# enums

我有以下枚举

public enum GridType
{
    Walkable = 0xFF000000,
    UnWalkable = 0xFF00000,
    Walked = 0xFF00000,
    Start = 0xFF00000,
    Destination = 0xFF00000
}

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


但是编译器会抛出一个错误:

Cannot implicitly convert type 'uint' to 'int'. An explicit conversion exists (are you missing a cast?)

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

最佳答案

你可以让你的GridType使用uint:

public enum GridType: uint
{
    Walkable = 0xFF000000,
    // etc
}

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

我以为你可以转换,但根据评论,那行不通。

关于c# - 以十六进制值表示的 int 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175574/

相关文章:

java.lang.Long 无法转换为 java.lang.Integer JPA GAE 和枚举

java - 按值查找枚举的正确方法

c# - 使用资源中的几何图形的 WPF 自定义按钮

c# - 转义字符串中的反斜杠

c# - 简单注入(inject)器依赖解析错误 - 无法加载文件或程序集 System.Web.Http

java - Spring boot 能够接受 Enum 作为请求参数

python - Ubuntu 16.04,Python 2.7 - 导入错误 : No module named enum

c++ - 无法将枚举值传递给递归模板 (C++)

c# - c#中的类库是否有等效的Application_Start

c# - 来自文本文件的数据表?