Die richtige Art und Weise eine ENUM in Managed C ++ 2005 zu erklären?
-
06-07-2019 - |
Frage
Wenn ich / CLR: oldSyntax folgende arbeiten:
public __value enum IceCreamFlavors
{
Vanilla,
Chocolate,
Sardine,
};
was ist das Äquivalent in nicht-oldSyntax? Wie kann ich eine "managed" Enum in Managed C ++ für .NET 2.0?
erklärenEdit: wenn ich JaredPar Beratung folgen, dann, wenn ich versuche, eine IceCreamFlavor auf eine Funktion, mit der Signatur zu übergeben:
OrderFlavor(IceCreamFlavors flav)
durch Ausführen
OrderFlavor(IceCreamFlavors::Sardine)
Ich erhalte die Fehlermeldung:
'IceCreamFlavors Sardine' : member function redeclaration not allowed
Lösung
Versuchen
enum class IceCreamFlavors {
Vanilla,
Chocolate,
Sardine,
};
Andere Tipps
Sind Sie durch Zufall, versuchen, Ihre Enum innerhalb einer anderen Klasse zu erklären? dh:
public ref class Icecream
{
public enum class flavours
{
Mint,
Vanilla,
Guac
};
};
Wenn Sie sind, ich würde vermuten, dass Sie es verschieben müssen, so dass sie ihre eigene Klasse ist statt eines verschachtelten ein. (Ist c verwaltet ++ verschachtelte Klassen erlauben?) Mein Eindruck ist, dass man verwendet, um es innerhalb einer anderen Klasse nicht verwalteten Stil zu tun, aber da seine seine eigenen Klasse jetzt, sollten Sie wahrscheinlich nicht, sie nisten. Ich könnte falsch liegen. Mein Wissen von Managed C ++ und C # ist eine Art schwach.