質問

ネストされた列挙型でクラスを作成したい

public class Foo
{
    public enum Views
    {
    }
}

ただし、System.Reflection.Emit.TypeBuilderクラスには、DefineNestedTypeのみのDefineNestedEnumはありません。 ModuleBuilder.DefineEnumが存在するため、列挙型を作成できますが、ネストする方法はありません。偽造せずに(つまり、EnumBuilderを使用して)列挙型を作成できますか?


ソリューションを以下の回答に移動しました。

役に立ちましたか?

解決 2

質問への回答をここに移動します。


考えられる唯一のことは、System.Enumを拡張し、定数値を持つpublic | static | literalフィールドを定義するシールクラスとしてネストされた型を定義することです。これは基本的に、C#コンパイラが逆アセンブルして学んだことを基にしています。これを実行してアセンブリを参照すると、Intellisenseはそれを列挙として認識し、列挙のように機能します。


これは、MSDNがJeremyがリンクしたことを示す方法です。

他のヒント

の最後の例を参照してください。この記事は、まさにあなたが望むことをします。 (正しい引数でDefineNestedTypeを使用します)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top