2010-07-15 2 views
2

이것은 내 Enum입니다.다른 열거 형을 My Enum으로 가져 오는 방법

public enum MyEnum {Blue, Red};

ExternalEnum이라는 또 다른 외부 열거 형이 있는데, 그 소스 코드를 변경할 수 없지만 클래스를 사용할 수 있습니다. 노란색과 흰색이 있다는 것을 알고 있습니다.

내가 뭘 원하는, 외부 열거의 모든 요소를 ​​끌어 그들을 내 열거의 일부로 만드는 것이다 즉

공공 열거 MyEnum {블루, 레드, ExternalEnum.Yellow, ExternalEnum.White};

이렇게 쉽게 할 수있는 방법이 있나요? 새 요소 인 ExternalEnum을 얻을 때마다 수동으로 모든 요소를 ​​검토 할 필요가 없습니다. 다른 패키지에 속해 있기 때문에 extend (subclass)를 사용하고 싶지 않습니다.

감사합니다.

+2

어떤 언어입니까? –

+0

"패키지"는 자바라고 제안하지만 "연장"은 나를 혼란스럽게합니다. 이 "enum"의 값을 동적으로 업데이트 하시겠습니까? – Cambium

+0

+1 Daniel - 의도 한 언어 (우리가 추측 할 수 있지만 확실하지는 않음)를 알지 못하면 어떻게 도울 수 있습니까? – Mawg

답변

2

당신이 말하는 것은 "동적 인 Enum"입니다.

Here is a link 여기에 이전 질문에 StackOverflow.

+1

좋은 참조를 위해 +1하지만 그 중 하나는 C#과 OP는 언어를 지정하지 않았습니다. 또한 아직 답변을받지 못했습니다. OP, 어떤 언어로 타겟팅하고 있습니까? – Mawg

+0

죄송합니다. saunderl

1

lnguage를 지정하지 않았으므로 도움을 받기가 매우 어렵지만 원하는 언어가 컴파일 된 언어보다 이해하기 쉽다는 생각이 듭니다.

2

이 같은 열거 상수를 다시 정의하여 수행 할 수 있습니다

public enum ExternalEnum 
{ 
    White, // -> 0 
    Black // -> 1 
} 

public enum MyEnum 
{ 
    White = ExternalEnum.White, // -> 0 
    Black = ExternalEnum.Black, // -> 1 
    Red, // -> 2 
    Blue // -> 3 
} 

그러나 열거 상수의 정수 값이 중복되지 않도록해야합니다. 가장 쉬운 방법은 먼저 외부 상수를 선언하는 것입니다. enum에 자동으로 가져 오는 것과 같은 것은 없습니다. 열거 형을 확장 할 수 없습니다.

관련 문제