C# 开关盒返回“;“需要一个常量值”;

C# 开关盒返回“;“需要一个常量值”;,c#,visual-studio,visual-studio-2013,enums,C#,Visual Studio,Visual Studio 2013,Enums,我四处搜索,其他有这个问题的人都在使用.ToString方法,我没有,所以我不知所措 在最后一行,我得到一个返回值“预期为常量值” 我知道如果我删除了赋予枚举值的部分,它就会起作用,但这有点违背了我使用枚举的目的。关于实现这一目标的最佳方法有什么建议吗 public enum Colors { Blue = "0000FF", Red = "FF0000", Green= "00FF00" } pri

我四处搜索,其他有这个问题的人都在使用.ToString方法,我没有,所以我不知所措

在最后一行,我得到一个返回值“预期为常量值”

我知道如果我删除了赋予枚举值的部分,它就会起作用,但这有点违背了我使用枚举的目的。关于实现这一目标的最佳方法有什么建议吗

        public enum Colors
    {
        Blue = "0000FF",
        Red = "FF0000",
        Green= "00FF00"
    }
        private void colorstuff(Colors Color){
            switch (Color ){
                case Colors.Blue:

            }
        }
**编辑,以便我知道枚举不能有字符串类型。有人能推荐一种制作一组字符串类型的方法吗?如果我只是申报

        const Blue = "0000FF",
        const Red = "FF0000",
        const Green= "00FF00"

它们之间没有连接。

枚举基于int数据类型,因此需要如下声明它们:

Blue = 0x0000FF 
或者声明一个类:

    public static class MyColours
    {
        public  const string Blue = "0000FF";
    }

亲爱的,您不能这样定义枚举,因为它是int类型

 public enum Colors
    {
        Blue = 0000FF,
        Red = FF0000,
        Green= 00FF00
    }

为什么不在枚举中添加颜色值作为属性,并在需要使用字符串值时使用扩展方法呢?我对c#非常陌生。你能举个例子吗?@cade Enums不能有字符串类型…所以我的Enum部分甚至无法编译?很好。默认情况下,
int
,但是您也可以将其他基于整数的类型指定为基础类型。上面的示例只是我的示例中的伪代码。我需要一个字符串值的东西。我需要一个底层值作为字符串,我希望它能像枚举一样工作,而不是仅仅通过声明const string Blue=“0000FF”来分离常量;我如何创建一组都具有字符串值的常量?如果我创建一个新的公共类并将子常量也公开,会怎么样。这看起来是个不错的选择吗?是否有人使用此方法发现任何潜在问题?这似乎是一种奇怪的方法。code公共静态类颜色{public String Value=“”;public const String Blue=“0000FF”;public const String Red=“FF0000”;public const String Green=“00FF00”;}您的代码不会“编译”。它应该如何回答OP的问题?