सटीक कोड मैं का निर्माण करने की कोशिश कर रहा हूँ:यह एक अवैध भिन्नता क्यों है?
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
मैं इस त्रुटि हो रही है: अमान्य विचरण: प्रकार पैरामीटर 'टी' 'MapLibrary.IMapContainer.GetRooms()' पर invariantly मान्य होना चाहिए। 'टी' कॉन्वर्सेंट है।
मैं इस धारणा के तहत था कि यह मान्य होगा क्योंकि आईनेमेरेबल केवल आइटम लौटाता है, और कोई भी जोड़ा नहीं जा सकता है। यह सुरक्षित क्यों नहीं है + वैध?
मुझे खेद है, लेकिन क्यों टी बाहर? क्या आपको उस 'आउट' की ज़रूरत है? –
आपके इंटरफ़ेस से टी आउट आउट पैरामीटर क्यों है ?? आप क्या हासिल करने का प्रयास कर रहे हैं? मेरे परिप्रेक्ष्य से जो विषम/गलत दिखता है। –
@ एक्सटियन, आंद्रे, http://msdn.microsoft.com/en-us/library/dd997386.aspx। –