如何在C#中声明枚举

时间:2014-07-01 12:25:38

标签: c# enums declaration

我真的不知道如何声明枚举,我试过这个

enum cardValue {2 = 0, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A}; 

enum cardValue {"2" = 0, "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A"};

在这两种情况下,编译器都抱怨我使用的符号。我知道格式不对,但是我可以对此做些什么,以便下面的代码可以工作吗? (此处,V可以是"K""5"或任何其他值)

struct card
{
    cardValue value;
    cardSuit suit;

    public card(string V, string S)
    {
        value = SomeTransformation(V);
        suit = SomeTransformation(S);
    }
    ...
}

2 个答案:

答案 0 :(得分:0)

枚举可以有字符,默认是int

char类型被归类为整数类型,但它在两个方面与其他整数类型不同:

•其他类型没有隐式转换为char类型。特别是,即使sbyte,byte和ushort类型具有使用char类型可完全表示的值范围,也不存在从sbyte,byte或ushort到char的隐式转换。

•char类型的常量必须写成字符文字或整数文字,并与强制转换为char类型。例如,(char)10与'\ x000A'相同。

答案 1 :(得分:0)

枚举值应来自同一类型。所以你的第二个例子几乎可行。如果使用标志,则应为所有值指定名称或索引,而不仅仅是一个:

enum cardValue { Val2 = "2", Val3 = "3", Val4 = "4", ValA = "A" };

此外,变量名,类名,枚举值等不能只包含数字。所以名字中必须有一个角色。