c# - Casting to generic abstract class shows T as unresolved symbol -


मान लें कि मेरे पास यह है:

  सार्वजनिक सार वर्ग myClass & lt; T & gt; : ओब & lt; T & gt; अब मेरे ऐप्पल के भीतर परिभाषित विधि में, मैं अपने प्रकार की वस्तु का एक वस्तु बना सकता हूं और मेरे टाइप में परिभाषित विधि पर, मैं सार को पास करता हूं वर्ग myClass इसे कॉल कर रहा है।  

तो मेरे myType वर्ग में, मेरे पास है:

  सार्वजनिक अमान्य myMethod (ऑब्जेक्ट कॉलर)  

मेरा प्रश्न यह है कि, मैं ऑब्जेक्ट कॉलर को अमूर्त वर्ग के प्रकार के रूप में किस प्रकार डाली है जिसे मैंने कहा है?

मैंने कोशिश की

  (myClass & lt; T & gt;)  < 

और

  (myClass)  

लेकिन दोनों विफल।

जेनरिक मेरे सिर को चोट पहुँचाते हैं।

आप ऐसा कर सकते हैं के रूप में , निम्नानुसार:

  सार्वजनिक शून्य MyMethod (ऑब्जेक्ट कॉलर) {myClass & lt; T & gt; परीक्षण = कॉलर के रूप में myClass & lt; T & gt; अगर (परीक्षण! = नल) {// परीक्षा का प्रयोग करें यहाँ}}  

यह कहा जा रहा है, अगर आप हमेशा ज्ञात myClass & lt; T & gt; शायद सिर्फ उपयोग करने के लिए क्लीनर हो सकता है:

  सार्वजनिक शून्य मेरा मैथ्यू (myClass & lt; T & gt; कॉलर) {// सीधे कॉलर का उपयोग करें ...}  

संपादित करें: प्रदर्शित करने के लिए, यहां एक छोटा सा नमूना है:

  सिस्टम का उपयोग कर; सार्वजनिक श्रेणी के myClass & lt; T & gt; जहां टी: नया () {सार्वजनिक टी मूल्य; सार्वजनिक शून्य CopyFromSecond (ऑब्जेक्ट कॉलर) {myClass & lt; T & gt; परीक्षण = कॉलर के रूप में myClass & lt; T & gt; This.Value = test.Value; }} वर्ग कार्यक्रम {स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {myClass & lt; int & gt; परीक्षण = नया myClass & lt; int & gt; {मूल्य = 3}; myClass & LT; पूर्णांक & gt; Test2 = नया myClass & lt; int & gt; {मूल्य = 5}; Console.WriteLine (test.Value); test.CopyFromSecond (test2); Console.WriteLine (test.Value); Console.ReadKey (); }}  

यह 3 से 5 प्रिंट करता है, जैसा कि अपेक्षित है।


संपादन 2:

यदि आप एक अन्य myClass & lt; T & gt; से टाइप करें, आपको प्रतिबिंब का उपयोग करने की आवश्यकता होगी आपकी आवश्यकता की विधि है।


Comments

Popular posts from this blog

email - PHP mail error ... failed to open stream : permission denied -

c# - ListView onScroll event -

c - Linux mmap() error -