Pregunta

Si uso / clr: oldSyntax, lo siguiente debería funcionar:

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

¿Cuál es el equivalente en non-oldSyntax? ¿Cómo declaro un " administrado " enumeración en Managed C ++ para .NET 2.0?

Editar: cuando sigo los consejo de JaredPar, entonces si trato de pasar un IceCreamFlavor a una función con la firma:

OrderFlavor(IceCreamFlavors flav)

ejecutando

OrderFlavor(IceCreamFlavors::Sardine)

Me sale el error:

'IceCreamFlavors Sardine' : member function redeclaration not allowed
¿Fue útil?

Solución

Probar

enum class IceCreamFlavors {
  Vanilla,
  Chocolate,
  Sardine,
};

Otros consejos

¿Está, por casualidad, tratando de declarar su enumeración dentro de otra clase? es decir:

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

Si es así, supongo que necesita moverlo para que sea su propia clase en lugar de una anidada. (¿El c ++ administrado permite clases anidadas?) Mi impresión es que solías poder hacer un estilo no administrado dentro de otra clase, pero dado que ahora es su propia clase, probablemente no deberías anidarlas. Podría estar equivocado. Mi conocimiento de c ++ administrado y c # es algo débil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top