2009-01-08 7 views
1

Si j'utilise/clr: oldSyntax les éléments suivants doivent travailler:Une bonne façon de déclarer un enum managé C++ 2005?

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

ce qui est l'équivalent en non-oldSyntax? Comment puis-je déclarer une énumération "gérée" dans Managed C++ for .NET 2.0?

Edit: quand je suis de advice JaredPar, alors si je tente de passer un IceCreamFlavor à une fonction avec la signature:

OrderFlavor(IceCreamFlavors flav) 

en exécutant

OrderFlavor(IceCreamFlavors::Sardine) 

Je reçois l'erreur :

'IceCreamFlavors Sardine' : member function redeclaration not allowed 
+0

Pouvez-vous poster un échantillon plus complet de OrderFlavor? – JaredPar

Répondre

2

Essayez

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

Quand je fais cela, si je tente de passer un IceCreamFlavor à une fonction avec la signature: « OrderFlavor (IceCreamFlavors Flav) » en exécutant « OrderFlavor (IceCreamFlavors Sardine) » Je reçois « « »: IceCreamFlavors Sardine fonction membre non redéclaration permis" – brian

0

Êtes-vous, par hasard, en train de déclarer votre énumération dans une autre classe? -à-dire:

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

Si vous êtes, je suppose que vous avez besoin de le déplacer de telle sorte qu'il est sa propre classe au lieu d'une nichée. (Est-C++ géré permet des classes imbriquées?) Mon impression est que vous avez utilisé pour être en mesure de le faire de style non géré dans une autre classe, mais depuis sa propre classe maintenant, vous ne devriez probablement pas les imbriquant. J'ai peut être tort. Ma connaissance de C++ et C# gérés est plutôt faible.

Questions connexes