중첩 열거 형을 사용하여 클래스를 만들고 싶습니다.System.Reflection.Emit이 포함 된 중첩 열거 형
public class Foo
{
public enum Views
{
}
}
그러나 System.Reflection.Emit.TypeBuilder 클래스가 더 DefineNestedEnum 만 DefinedNestedType이 없습니다. ModuleBuilder.DefineEnum을 사용하면 열거 형을 만들지 만 중첩되도록 만들 방법이 없습니다. 열거하지 않고 열거 형을 만들 수 있습니까 (예 : EnumBuilder 사용)?
내 대답을 아래로 이동했습니다.
내가 말한 것과 다른 점은 무엇입니까? 상수 값이있는 필드를 정의하여 System.Enum에서 상속되는 중첩 형식입니다. 그러나 MSDN 예제에서는 중첩 된 enum을 생성하기위한 상속 지원이 없음을 나타냅니다. –
요점은 다음과 같습니다. 즉, 중첩 된 열거 형은 상수 값이있는 필드를 정의하는 System.Enum에서 상속되는 중첩 형식입니다. MSDN 샘플에서 생성 된 어셈블리의 반사판을 살펴보고 중첩 된 열거 형을 사용하여 C# 클래스를 컴파일하여 생성 된 중첩 된 열거 형과 비교해 보면 동일하다는 것을 알 수 있습니다. – jlew
다시 한 번, 내가 처음에 게시 한 질문과 다른 질문에 링크 된 MSDN 문서는 어떻게됩니까? 제 질문은 열거 형을 가짜로 만드는 방법에 관한 것이 아닙니다. EnumBuilder는 enum이 실제로 무엇인지에 대한 모든 세부 사항을 숨기고 있지만 EnumBuilder를 가져 와서 중첩시키는 방법은 없습니다. –