2009-09-09 85 views

回答

2

這是不是語法相同?

MyEnum enumValue = MyEnum::Enum1; 
Console::WriteLine(enumValue.ToString()); 

看那本書的這一頁 「臨的Visual C++/CLI和.NET 3.5平臺」 在Google Books

「的toString()方法用於枚舉打印出枚舉名稱的方法字符串」

+0

我得到「.ToString()的左邊必須有class/struct/union」 – CJBrew 2017-08-23 13:37:41

0

的ToString()應該返回枚舉值的名稱。此外,如果您使用[Flags]屬性修飾託管Enum,則例如Colour::Red | Colour::Blue將ToString()設置爲「Red,Blue」。 (這是來自Marcus Heege的書「專家Visual C++/CLI:.NET for Visual C++程序員」的內存,並沒有自己嘗試過)

4

雖然其他答案並不正確,但我發現自己也遇到同樣的問題。就我而言,我已經聲明瞭一個標準的C++枚舉,並且忘記使用CLI語法(即使我已經在公共屬性中公開了屬性而沒有編譯器警告!)。

一個C++/CLI枚舉是正確的語法(注意這個詞「類」):

public enum class SomeEnum { 
    Value1, 
    Value2 
} 

注意:您還可以使用「結構」,而不是「類」。

您還需要從該回去通過你的代碼,並改變任何分配(編譯器會很樂意不過告訴你的錯誤):

SomeEnum value = Value1; 

這樣:

SomeEnum value = SomeEnum::Value1; 

你現在會發現'ToString()'按照你所期望的那樣工作。