2011-05-04 4 views
10

Enum.GetValues ​​()가 Windows Phone 7 API에서 사용할 수없는 이유는 일반적으로 구조체 나 다른 메커니즘을 선호하여 일반적으로 Enum에서 벗어나야한다는 의미입니다.WP7의 Enum.GetValues ​​

답변

5

은 "왜"WP7은 "컴팩트 프레임 워크"를 기반으로하기 때문에입니다 Enum.GetValues ​​()는 윈도우 폰에서 사용할 수 없습니다 7 API입니다 Compact Framework에는 전체 프레임 워크의 모든 메서드가 포함되어 있지 않으며 Enum.GetValues ​​()는 생략 된 메서드 중 하나였습니다.

는 내가 일반적으로 구조체 또는 다른 메커니즘에 찬성 멀리 열거 형 부끄러워해야이 의미한다.

아니요 - 특별한 이유가 없습니다. 열거 형을 사용하여 계속해서 가장 적절한 프로그래밍 솔루션을 찾을 것을 권장합니다.

15

나는 이것에 들어갔다. 내 목적을 위해 리플렉션을 사용할 수있었습니다.

foreach (var x in typeof(MyEnum).GetFields()) { 
    if (x.IsLiteral) { 
    // Do my stuff here 
    } 
} 

정말로 당신이 그들과 무엇을하고 있는지에 따라 달라집니다. 자원의 절약하기 -

+0

깔끔한 솔루션! 비슷한 해결책은 http://ideas.dalezak.ca/2008/11/enumgetvalues-in-compact-framework.html과 http://stackoverflow.com/questions/105372/c-how에 대한 답변에서도 논의됩니다. -to-enumerate-an-enum – Stuart

+1

스튜어트에 대한 답변을 제공 할 때 부분 응답 (즉, 투표)은 좋은 답변으로 질문에 대답했습니다. 하지만 열거 형을 열거 할 수있는 방법을 물어봐야했는데, 수표를 받았을 것입니다. – CodeKiwi

+2

'MyEnum enumValue = (MyEnum) x.getValue (typeof (MyEnum));'는 필요한 경우 값을받습니다. –