English 中文(简体)
在 Managed C++ 2005 中声明枚举的正确方式是什么?
原标题:
  • 时间:2009-01-08 22:46:15
  •  标签:

如果我使用/clr:oldSyntax,则以下内容应该有效:

public __value enum IceCreamFlavors
{
   Vanilla,
   Chocolate,
   Sardine,
};

非旧语法中的等效项是什么?在.NET 2.0的Managed C++中如何声明“managed”枚举?

Edit: when I follow JaredPar s advice, then if I try to pass an IceCreamFlavor to a function with the signature:

OrderFlavor(IceCreamFlavors flav)

通过跑步

OrderFlavor(IceCreamFlavors::Sardine)

我收到了错误提示:

 IceCreamFlavors Sardine  : member function redeclaration not allowed
最佳回答

请试试 (Qǐng shì shì)

enum class IceCreamFlavors {
  Vanilla,
  Chocolate,
  Sardine,
};
问题回答

Are you, by any chance, trying to declare your enum inside another class? ie:

public ref class Icecream
{
     public enum class flavours
     {
          Mint,
          Vanilla,
          Guac
     };
};

如果您需要,我猜想您需要将其移出,使其成为一个独立的类,而不是嵌套的类(管理C++是否允许嵌套类?)我的印象是以前您可以在另一个类中以未管理的方式这样做,但由于它现在是自己的类,您可能不应该将它们嵌套。我可能错了。我的管理C++和C#知识有些薄弱。





相关问题
热门标签