सी # 3 (विजुअल स्टूडियो 2008) ने भाषा में एक ब्रेकिंग परिवर्तन शुरू किया (http://msdn.microsoft.com/en-us/library/cc713578.aspx, परिवर्तन 12 देखें) जो किसी भी शाब्दिक शून्य को पूर्ण रूप से एनम में परिवर्तित करने की अनुमति देता है। यह कई तरीकों से अजीब लगता है। क्या किसी को पता है कि यह कल्पना का हिस्सा क्यों है? एक शाब्दिक क्यों नहीं? या सात? शून्य विशेष क्यों है? और यह कुछ बहुत ही counterintuitive अधिभार संकल्प विकल्प बनाता है। उदाहरण के लिए।सी # 3 किसी भी एनम के लिए शाब्दिक शून्य (0) के अंतर्निहित रूपांतरण की अनुमति क्यों देता है?
function string F(object o) { return o.ToString(); }
function string F(DbType t) { return t.ToString(); }
int i = 0;
F((long)0) == "String" // would have been "0" in VS 2005
F(0) == "String"
F(i) == "0"
बहुत भ्रमित, और जानबूझकर भाषा में एक जानबूझकर पेश किया गया परिवर्तन। कोई विचार?
यदि आप किसी प्रश्न में इतनी कठोर परिवर्तन करने जा रहे हैं (विशेष रूप से जो पहले से ही उत्तर देने के लिए वोट दिया गया है), तो यह सबसे अच्छा होगा - उत्तरदाताओं, ब्राउज़रों और आप के लिए - एक नया प्रश्न बनाने के लिए। अब आपके पास दो अलग-अलग प्रश्नों के उत्तर होंगे, जिनमें से पहला आकस्मिक ब्राउज़र शायद संपादन इतिहास में कभी नहीं देखेगा। – joshperry
और जादू की तरह, सवाल को वापस अपने मूल भ्रामक रूप में संपादित किया गया है! यह ध्यान दिया जाना चाहिए कि दिया गया नमूना वीएस 2008 में नहीं टूटा हुआ है। मैं यह परिवर्तन करूँगा और देख सकता हूं कि यह चिपक जाता है ... –