Frage

Ich möchte eine Klasse mit einer verschachtelten Enum erstellen.

public class Foo
{
    public enum Views
    {
    }
}

Allerdings System.Reflection.Emit.TypeBuilder Klasse hat keine DefineNestedEnum nur DefinedNestedType. ModuleBuilder.DefineEnum besteht, dass Lassen Sie uns mich eine ENUM schaffen, aber ich finde keine Möglichkeit, es verschachtelt zu machen. Kann ich eine Enum erstellen, ohne es zu fälschen (das heißt, mit EnumBuilder)?


Ich bewegte meine Lösung auf eine Antwort unten.

War es hilfreich?

Lösung 2

Umzug meine Antwort, die ich hier in Frage gestellt.


Das einzige, was ich denken kann, ist eine verschachtelte Art als versiegelte Klasse zu definieren, die System.Enum erstreckt und definiert Öffentlichkeit | statische | wörtliche Felder mit konstanten Werten. Dies ist im Wesentlichen, was der C # -Compiler ist auf dem Handeln basiert, was ich durch Zerlegen sie gelernt haben. Wenn ich dies tun und verweisen auf die Baugruppe Intellisense erkennt sie als Enum und Funktionen wie ein Enum.


Das ist genau die Methode MSDN zeigt, dass Jeremy verknüpft.

Andere Tipps

Siehe das Beispiel am Ende der dieser Artikel , die genau das tut, was Sie wollen. (Sie verwenden DefineNestedType mit den richtigen Argumenten)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top