¿Forma correcta de declarar una enumeración en Managed C ++ 2005?
-
06-07-2019 - |
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
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.