c# - Implicit Operator Conversion and Generics -
यह रूपांतरण क्यों काम नहीं करता?
सार्वजनिक इंटरफ़ेस IMyInterface {} सार्वजनिक इंटरफ़ेस IMyInterface2: IMyInterface {} सार्वजनिक वर्ग MyContainer & lt; T & gt; जहां टी: आईएमआई इंटरफेस {सार्वजनिक टी माइइमप्ल {प्राप्त; निजी सेट;} सार्वजनिक MyContainer () {MyImpl = Create & lt; T & gt; (); } सार्वजनिक स्थिर अंतर्निहित टी (माइ कंटेनइयर & lt; T & gt; myContainer) {myContainer.MyImpl; I
MyContainer और lt; IMyInterface2
> से IMyInterface2 में कनवर्ट नहीं किया जा सकता ... hmmmm
आप इंटरफ़ेस में एक अंतर्निहित रूपांतरण को परिभाषित नहीं कर सकते। इसलिए आपके सामान्य अप्रत्यक्ष ऑपरेशन इंटरफेस के लिए मान्य नहीं होने जा रहे हैं। देखें
आप ऑपरेटरों को नहीं बना सकते जो एक परिभाषित अंतरफलक के लिए एक वर्ग को परिवर्तित करते हैं। यदि अंतरफलक के लिए रूपांतरण आवश्यक है, तो क्लास को इंटरफ़ेस को कार्यान्वित करना होगा।
आपको अंतर्निहित जादू के बिना निम्नलिखित लिखना समाप्त करना होगा:
<पूर्व> IMyInterface2 myImpl = नया MyContainer & lt; IMyInterface2 & gt; ()। MyImpl;
Comments
Post a Comment