2009-02-04 72 views
-1

我有一個枚舉聲明有沒有辦法使用C++/CLI託管枚舉作爲數組下標?

enum class AccessLevel : int 
{ 
    ReadOnly = 0, 
    Excluded = 1, 
    ReadWrite = 2, 
}; 

和數組聲明爲

static array<String^>^ _accessMap = gcnew array<String^> { "R", "X", "W" }; 

我想要做這樣的事情:

AccessLevel^ access = access::ReadOnly; 
String^ foo = _accessMap[access]; 
+0

您能否發佈您收到的錯誤?您可能需要提供明確的演員表。我可以想象,這將在C#中起作用,但是在我與C++/CLI的短暫推理中,我發現它是「片狀的」。所以試試「String^foo = _accessMap [(int)access];」 – nlaq 2009-02-04 21:45:16

回答

2
public enum struct AccessLevel 
{ 
     ReadOnly = 0, 
     Excluded = 1, 
     ReadWrite = 2, 
}; 

AccessLevel access = access::ReadOnly; 

您可能需要投到一個int

String^ foo = _accessMap[(int)access]; 
相關問題