WP7

2011-05-04 17 views
10

में Enum.GetValues ​​Enum.GetValues ​​() विंडोज फोन 7 एपीआई में क्यों उपलब्ध नहीं है, और इसका मतलब यह है कि मुझे आम तौर पर structs या अन्य तंत्र के पक्ष में Enums से दूर शर्मीला होना चाहिए।WP7

उत्तर

5

क्यों

"क्यों" क्योंकि WP7 "कम्पैक्ट फ्रेमवर्क" पर आधारित है Enum.GetValues ​​() विंडोज फोन में उपलब्ध नहीं 7 एपीआई है कॉम्पैक्ट फ्रेमवर्क में पूर्ण रूपरेखा में प्रत्येक विधि शामिल नहीं है - और Enum.GetValues ​​() उन छोड़े गए लोगों में से एक था।

इसका मतलब मैं आम तौर पर structs या अन्य तंत्र के पक्ष में दूर Enums से संकोच करना चाहिए करता है।

नहीं - कोई विशेष कारण नहीं। मैं अनुशंसा करता हूं कि आप एनम का उपयोग जारी रखें जहां आप उन्हें सबसे उपयुक्त प्रोग्रामिंग समाधान पाते हैं।

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

स्टुअर्ट को जवाब क्रेडिट देना था, आंशिक क्रेडिट (यानी वोट अप) के आसपास अच्छा काम, क्योंकि उसकी प्रतिक्रिया से पूछा गया था। लेकिन मुझे यह पूछना चाहिए था कि मैं एक enum की गणना कैसे कर सकता हूं, और आपको चेक मिल गया होगा। – CodeKiwi

+2

'MyEnum enumValue = (MyEnum) x.getValue (typeof (MyEnum)); यदि आवश्यक हो तो आपको मूल्य मिलेगा। –