6

我最近开始使用 C++/CLI 托管代码,但我总是这样定义枚举:

enum FV_MODE
{
    IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX
};

直到今天,当我遇到错误消息时:

cannot define an unmanaged enum 'FViewer::FV_MODE' inside managed 'FViewer'
1>          use 'enum class'

正如消息和各种堆栈溢出问题中所建议的那样,将我的代码更改为:

enum class FV_MODE
{
    IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX
};

很快解决了这个问题。

但是,我仍然不知道我现在知道定义枚举的两种不同方式之间的差异。有人可以帮我澄清一下吗?还有什么让“枚举类”更适合托管代码?

提前致谢,

盖伊

4

1 回答 1

4

非托管枚举和使托管枚举更适合托管代码的托管枚举之间的区别在于,托管枚举是托管代码,而非托管枚举是非托管代码。托管枚举可以通过托管代码元数据进行通信。非托管枚举不能,这意味着它们可能不会显示为托管类的一部分。

于 2013-06-17T10:52:46.197 回答