C++ cli 有没有办法使用C++/CLI管理的枚举作为数组下标?

C++ cli 有没有办法使用C++/CLI管理的枚举作为数组下标?,c++-cli,C++ Cli,我有一个枚举声明为 enum class AccessLevel : int { ReadOnly = 0, Excluded = 1, ReadWrite = 2, }; static array<String^>^ _accessMap = gcnew array<String^> { "R", "X", "W" }; 和一个声明为 enum class AccessLevel : int { ReadOnly = 0, E

我有一个枚举声明为

enum class AccessLevel : int
{
    ReadOnly = 0,
    Excluded = 1,
    ReadWrite = 2,
};
static array<String^>^ _accessMap = gcnew array<String^> { "R", "X", "W" };
和一个声明为

enum class AccessLevel : int
{
    ReadOnly = 0,
    Excluded = 1,
    ReadWrite = 2,
};
static array<String^>^ _accessMap = gcnew array<String^> { "R", "X", "W" };
您可能需要强制转换为int

String^ foo = _accessMap[(int)access];

你能把你得到的错误贴出来吗?您可能需要提供显式强制转换。我认为这在C语言中是可行的,但在我使用C++/CLI的短暂经验中,我发现它是“不可靠的”。因此,请尝试“String^foo=_accessMap[(int)access];”我收到一个错误,说AccessLevel没有隐式转换为int。如果我说_accessMap[safe_cast(access)],我会得到“错误C2682:无法使用'safe_cast'从AccessLevel^转换为int”