1

/clr:oldSyntax を使用すると、次のように動作するはずです。

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

非oldSyntaxで同等のものは何ですか? Managed C++ for .NET 2.0 で "マネージド" 列挙型を宣言するにはどうすればよいですか?

編集: 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

ひょっとして、別のクラス内で列挙型を宣言しようとしていますか? すなわち:

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

もしそうなら、ネストされたクラスではなく独自のクラスになるように移動する必要があると思います。(マネージ C++ は入れ子になったクラスを許可しますか?) 私の印象では、以前は別のクラス内でアンマネージ スタイルを実行できましたが、独自のクラスになったので、おそらくそれらを入れ子にするべきではありません。私は間違っているかもしれません。マネージ C++ と C# に関する私の知識は、ちょっと苦手です。

于 2010-11-30T20:18:17.830 に答える