如何使用C#等C ++枚举类型?

如何使用C#等C ++枚举类型?

考虑c ++中的以下定义:

enum myEnum { A, B, C}; myEnum en = A; 

现在我希望将第2行写成如下行,如C#:

 myEnum en = myEnum.A; 

??

C ++ 0x引入的enum class完全符合您的要求:

 enum class myEnum { A, B, C }; myEnum en = myEnum::A; 

在C中,我可能会使用旧的前缀:

 enum myEnum { myEnum_A, myEnum_B, myEnum_C }; myEnum en = myEnum_A; 

好吧,C ++中有不同的规则。 你能得到的最近的是这种轻微的憎恶:

 namespace myEnum { enum myEnum { A, B, C}; } myEnum::myEnum en = myEnum::A; 

这究竟是什么问题? 您的C#示例将在您编写它时起作用(尽管它与.NET命名约定不匹配……)