स्ट्रिंग्स को एनम वैल्यू में कनवर्ट करने के बारे में बहुत सारे प्रश्न हैं। आम तौर पर, इस सवाल का जवाब this question पर जवाब तरह दिखता है: है कि एक पूरी तरह से उचित जवाब है, और आप कॉल को आसान बनाने के लिए एक विधि लिख सकते हैंEnum.Parse() वापसी वस्तु क्यों करता है?
StatusEnum MyStatus = (StatusEnum) Enum.Parse(typeof(StatusEnum), "Active", true);
, इसके बारे में क्यों Enum सवाल का जवाब नहीं है। पार्स() उपयुक्त एनम मूल्य के बजाय object
देता है। मुझे इसे StatusEnum
पर क्यों डालना है?
संपादित करें:
असल में, सवाल यह है कि क्यों है यह नहीं Enum वर्ग का हिस्सा की तरह एक समारोह?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
यह फ़ंक्शन पूरी तरह से ठीक काम करता है, ठीक वही करता है जो आप उम्मीद करेंगे। StatusEnum e = Enum.Parse<StatusEnum>("Active");
।
@ SpYk3HH - Enums * मान * नहीं है। वे * मूल्य हैं। वे मान हैं जो '.ToString()' के लिए सामान्य अधिभार होता है, लेकिन वे अभी भी मान हैं। – Bobson
.NET 4.0+ में ['Enum.TryParse'] (http://msdn.microsoft.com/en-us/library/dd783499 (v = vs.100)) –
@ SpYk3HH एनम प्रकार का मान है कुछ पूर्णांक जो enum प्रकार के फ़ील्ड में से एक से जुड़ा हो सकता है। पूर्णांक का आकार भिन्न हो सकता है। पार्स कुछ स्ट्रिंग लेता है और enum प्रकार का एक बॉक्सिंग उदाहरण देता है। यह अनबॉक्स किया जा सकता है या नहीं। आपकी आखिरी वाक्य भी कोई समझ नहीं लेती है। स्ट्रिंग और बूलियन में गुण और विधियां भी हैं जिन पर काम करना है। – phoog