1

如果我使用 /clr:oldSyntax 以下应该可以工作:

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

非oldSyntax中的等价物是什么?如何在 .NET 2.0 的托管 C++ 中声明“托管”枚举?

编辑: 当我遵循 JaredPar 的建议时,如果我尝试将 IceCreamFlavor 传递给带有签名的函数:

OrderFlavor(IceCreamFlavors flav)

通过运行

OrderFlavor(IceCreamFlavors::Sardine)

我得到错误:

'IceCreamFlavors Sardine' : member function redeclaration not allowed
4

2 回答 2

2

尝试

enum class IceCreamFlavors {
  Vanilla,
  Chocolate,
  Sardine,
};
于 2009-01-08T22:50:40.033 回答
0

您是否有机会尝试在另一个类中声明您的枚举?IE:

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

如果是,我猜您需要将其移出,以便它成为自己的类而不是嵌套类。(托管 c++ 是否允许嵌套类?)我的印象是,您曾经能够在另一个类中以非托管方式进行操作,但由于它现在是它自己的类,您可能不应该嵌套它们。我可能错了。我对托管 c++ 和 c# 的了解有点薄弱。

于 2010-11-30T20:18:17.830 回答