मुझे पता है कि आप एक वस्तु के ToString() विधि को रद्द कर सकते हैं, ताकि हर आप एक वस्तु पर कॉल करें या इसे एक समारोह है कि एक स्ट्रिंग टाइप यह एक स्ट्रिंग में परिवर्तित हो जाएगा की आवश्यकता के लिए गुजरती हैं।सी # में स्वत: प्रकार रूपांतरण
मैं ऑब्जेक्ट प्रकार 'वस्तु'
public static DateTime ToDate(this object date)
{
return DateTime.Parse(date.ToString());
}
public static int ToInteger(this object num)
{
return Int32.Parse(num.ToString());
}
public static long ToLong(this object num)
{
return Int64.Parse(num.ToString());
}
ताकि मैं सिर्फ उन्हें इस तरह कह सकते हैं के लिए कई विस्तार के तरीकों में लिखा है:
eventObject.Cost = row["cost"].ToString();
eventObject.EventId = row["event_id"].ToLong();
हालांकि, मैं क्या करना चाहते कन्वर्ट करने के लिए कर रहा है पंक्ति वस्तुएं जो 'ऑब्जेक्ट' प्रकार का है, अपने 'eventObject' पर संपत्ति प्रकारों के आधार पर अपने सही प्रकार के लिए। तो, मैं इसे इस तरह कह सकता हूं:
eventObject.Cost = row["cost"];
eventObject.EventId = row["event_id"];
पंक्ति महत्वपूर्ण है यदि यह महत्वपूर्ण है।
आप कनवर्ट क्लास का उपयोग क्यों नहीं कर रहे हैं? http://msdn.microsoft.com/en-us/library/system.convert.aspx - और नहीं, आप अपने अंतिम कोड की तरह चुप प्रकार रूपांतरण नहीं प्राप्त कर सकते हैं, जब तक कि आप "पंक्ति [x]" को वापस नहीं करते कस्टम ऑब्जेक्ट जो जानता है कि निहित कास्टिंग कैसे करें। –
+1 @Lasse कनवर्ट क्लास का उपयोग करना उपयोगिता विधियों के साथ 'ऑब्जेक्ट' को स्पैक्स करना बेहतर है। –
अब उपयोग करेगा, सोचा था कि इसमें कोई फर्क नहीं पड़ता –