पर डालने का एक साफ तरीका है जो मैं कर रहा हूं हैशटेबल में किसी विशेष फ़ील्ड के लिए एक मान देख रहा है। वस्तु प्राचीन प्रकार के मुट्ठी भर हो सकती है, जिसका मान एक्सएमएल के अंदर रखा जाना है, लेकिन यह ऑब्जेक्ट के रूप में हैशटेबल से बाहर आता है। इसलिए मुझे यह तय करने की समस्या है कि किस प्रकार का है, इसे कास्ट करें और फिर उस प्रकार का उपयोग करने के लिए ToString का उपयोग करें। यह अच्छा होगा अगर मुझे इसे कास्ट करने की आवश्यकता नहीं थी, लेकिन फिर यह ऑब्जेक्ट प्रकार पर ToString को कॉल करेगा और वास्तविक प्रकार पर समकक्ष विधि नहीं।किसी ऑब्जेक्ट को वास्तविक प्रकार
निम्नलिखित कोड कार्यात्मक रूप से सही है, लेकिन मैं इसके साथ सहज नहीं हूं। शायद इस आराम पथ के बाद मुझे एक शुद्धवादी होने का कारण बन जाएगा। अगर ऐसा मौजूद है तो मैं इसे लिखने के लिए किसी भी तरह से एक अच्छी तरह से सराहना करता हूं।
public string GetColumnValue(string columnName)
{
object value = item[columnName];
if (value == null)
return string.Empty;
if (value.GetType() == typeof(string))
{
return (string)value;
}
else if (value.GetType() == typeof(double))
{
return ((double)value).ToString();
}
...
}
यह बुनियादी प्रकार के लिए काम करता है, लेकिन कस्टम प्रकार के लिए अच्छी तरह से काम नहीं हो सकता है - क्या मद में वापस किया जा सकता [columnName] ... –
रीड, आपको एक उदाहरण देता कर सकते हैं पर निर्भर करता है? – spender
मैंने ईमानदारी से नहीं सोचा था कि यह काम करेगा। तो तर्क के लिए, आप किसी विशेष प्रकार के विरासत वृक्ष पर एक टॉस्ट्रिंग कार्यान्वयन को स्पष्ट रूप से कैसे कॉल कर सकते हैं? –