यह इस तरह से है, क्योंकि है कि क्या कल्पना का कहना है ...
यह एक और कारण है कि यह हमेशा एक अच्छा विचार अपने सभी enums 0 मान एक आइटम देने के लिए है 'क्योंकि आप उन्हें हासिल कर सकते हैं कभी-कभी उस मूल्य के साथ।
सी # भाषा कल्पना 6.1.3 में उचित अनुभाग:
6.1.3 अंतर्निहित गणना रूपांतरण
एक अंतर्निहित गणना रूपांतरण दशमलव-पूर्णांक शाब्दिक 0 करने के लिए परमिट किसी भी enum-type और किसी भी शून्य-प्रकार के रूप में परिवर्तित किया जाना चाहिए जिसका अंतर्निहित प्रकार एक enum-type है। बाद के मामले में रूपांतरण का मूल्यांकन अंतर्निहित enum-type में परिवर्तित करके और परिणाम लपेटकर (§4.1.10) किया जाता है।
क्यों के रूप में यह इस तरह है - अच्छी तरह से, मैं सिर्फ फैसला करता है कि इन बातों को पता होगा भाषा समिति पर किसी को लगता है कि।
वास्तव में, यदि आपके पास मूल प्रश्न पर कच्चे टिप्पणी की टिप्पणी है तो हमारे पास ऐसा कुछ है।
स्रोत
2013-06-06 11:03:33
** डुप्लिकेट ** [क्यों enum के लिए स्विच 0 पर अंतर्निहित रूपांतरण स्वीकार करता है लेकिन किसी भी अन्य पूर्णांक के लिए नहीं?] (Http://stackoverflow.com/questions/14950750/why-switch-for-enum-accepts- अंतर्निहित-रूपांतरण-से-0-लेकिन-कोई-किसी-अन्य-पूर्णांक के लिए) ** और ** [कंपाइलर मान प्रकार संकल्प और हार्डकोडेड "0" पूर्णांक मान] (http://stackoverflow.com/questions/14224465/संकलक-मूल्य-प्रकार संकल्प और hardcoded-0-पूर्णांक मान)। –
निश्चित डुप्ले, संक्षिप्त उत्तर, क्योंकि यह करता है। डिफ़ॉल्ट रूप से – Jodrell
, यदि पहले गणना सदस्य का मान घोषणा में सेट नहीं है, तो इसका मान शून्य है। http://msdn.microsoft.com/en-us/library/ms182149(v=vs.100).aspx –