2014-07-01 82 views
-9

我真的不明白如何聲明枚舉,我想這如何在C#聲明枚舉

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

看看[C#Enum](http://www.dotnetperls.com/enum) –

+5

http://msdn.microsoft.com/en-us/library/sbbt4032.aspx – gunr2171

+5

爲什麼你不嘗試看看msdn文檔? – pquest

回答

0

枚舉值應該來自相同的類型。所以你的第二個例子幾乎可行。如果您使用的標誌,你應該給所有的值的名稱或索引,而不只是一個:

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

此外,變量名,類名,枚舉值等不能只包含NUMERICS。所以名稱中必須有一個字符。

0

枚舉可以的具有字符,默認爲int

char類型被分類爲一體型,但它的不同之從其他類型中有兩種方式:

•沒有從其他類型到char類型的隱式轉換。特別是,即使sbyte,byte和ushort類型的值的範圍可以使用char類型完全表示,但不存在從sbyte,byte或ushort到char的隱式轉換。

•字符類型的常量必須寫成字符文字或整數文字結合char類型轉換。例如,(char)10與'\ x000A'相同。