2009-02-04 41 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]; 
相关问题