如何在c#中声明枚举

本文关键字:声明 枚举 | 更新日期: 2023-09-27 18:11:10

我真的不知道如何声明一个enum,我试过这个

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);
    }
    ...
}

如何在c#中声明枚举

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

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

另外,变量名、类名、枚举值等不能只包含数字。所以名称中必须有一个字符

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

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

•没有从其他类型到char类型的隐式转换。特别是,尽管sbyte、byte和ushort类型的值范围可以用char类型完全表示,但不存在从sbyte、byte或ushort到char的隐式转换。

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