.net - C# generic casting exception -


जेनेरिक उपयोग करते समय मैंने एक अजीब कास्टिंग मुद्दा चलाया है निम्न कोड InvalidCastException फेंकता है, भले ही स्पष्ट रूप से int को डबल पर डाला जा सकता है। क्या कोई इस व्यवहार को समझा सकता है और उसे बायपास कैसे कर सकता है?

  सार्वजनिक वर्ग के टेस्ट क्लास & lt; T & gt; {सार्वजनिक टी कास्ट (ऑब्जेक्ट ओ) {रिटर्न (टी) ओ; }} सार्वजनिक शून्य मुख्य () {टेस्ट क्लास & lt; डबल & gt; W = नया टेस्ट क्लास & lt; डबल & gt; (); डबल x = w.Cast (10); }   

संपादित करें:

चूंकि मैं शुद्ध 4.0 देश में हूं इसलिए मैंने इसे 'ऑब्जेक्ट' के बजाय 'गतिशील' 'और सब कुछ अपेक्षित रूप में काम करता है सभी स्पॉट-ऑन और त्वरित उत्तर की सराहना करें।

लेकिन एक वस्तु को डबल पर डाला नहीं जा सकता। o पैरामीटर एक वस्तु लेता है, नहीं एक int < / Code>।

उदाहरण के लिए, निम्न कोड InvalidCastException :

  object o = 1000; डबल एक्स = (डबल) ओ;    

Comments