2011-05-04 33 views
10

爲什麼Enum.GetValues()在Windows Phone 7 API中不可用,這是否意味着我通常應該避開Enums來支持結構或其他機制。WP7中的Enum.GetValues

回答

5

爲什麼Enum.GetValues()在Windows Phone不可 7 API

「爲什麼」 是因爲WP7是基於 「Compact Framework的」 - 以節省資源,在緊湊框架並不包含完整框架中的每個方法 - 而Enum.GetValues()就是其中的一個。

確實 這意味着我一般應避而遠之 從枚舉贊成結構或其他 機制。

否 - 沒有特別原因。我建議你繼續使用enum,在那裏你找到他們最合適的編程解決方案。

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/-how的回答中也討論了類似的解決方案枚舉枚舉 – Stuart 2011-05-04 20:56:47

+1

很好的解決方法,部分信用(即投票),因爲他的回答解決了所問的問題,因此必須給斯圖亞特答覆。但我應該問我怎樣枚舉一個枚舉,並且你會得到這個檢查。 – CodeKiwi 2011-05-05 05:18:13

+2

'MyEnum enumValue =(MyEnum)x.getValue(typeof(MyEnum));'如果需要將會得到你的值。 – 2012-03-21 21:44:46