ऐसे कई तरीके हैं।
चूंकि टिप्पणियां इंगित करती हैं कि मुझे लगता है कि आप ऐसा करते हैं, तो मुझे यह स्पष्ट करने दें: आपको अपने ऑब्जेक्ट के लिए नामित प्रकार बनाना चाहिए क्योंकि आप इसे पास करना चाहते हैं।
सबसे पहले, आप प्रतिबिंब का उपयोग कर सकते हैं, जो यहां एक और उत्तर पहले से ही इंगित कर चुका है।
एक और तरीका, जो आपको सही प्रकार देने में .NET को "उदाहरण के द्वारा कास्ट" के रूप में जाना जाता है, और यह कुछ ऐसा होता है: आपको अपनी ऑब्जेक्ट को जेनेरिक विधि कॉल के माध्यम से पास करने की आवश्यकता होती है, जो ऑब्जेक्ट को वापस कर देगी सही प्रकार के रूप में, सही प्रकार का वापस लौटने के लिए।
उदाहरण के लिए, इस प्रयास करें:
private static T CastByExample<T>(T example, object value)
{
return (T)value;
}
और इसका इस्तेमाल करने के लिए:
var x = CastByExample(new { TheDay = ??, EntranceOrExit = ?? }, obj);
दो के लिए
?? स्पॉट्स, आपको बस उन गुणों के लिए डेटा प्रकार को फ़िट करने की आवश्यकता है, मानों का उपयोग नहीं किया जाएगा।
यह इस तथ्य का शोषण करता है कि एक ही प्रकार में, उसी क्रम में, समान प्रकार के सटीक समान गुण वाले एकाधिक अनाम प्रकार, एक ही प्रकार के लिए मानचित्रित होंगे।
हालांकि, इस समय तक आपको इसके नाम पर एक नाम टाइप करना चाहिए।
स्रोत
2010-02-19 21:23:11
बड़ा सवाल यह है कि आप क्यों चाहते हैं? आप क्या हासिल करने का प्रयास कर रहे हैं? – pdr