मान लें मैं इंटरफ़ेस और वर्ग है:क्यों सहप्रसरण सामान्य विधि के साथ काम नहीं करता है
public interface ITree {}
public class Tree : ITree {}
IEnumerable<T>
रूप covariant है, नीचे दिए गए कोड लाइन सफलतापूर्वक संकलित किया गया है:
IEnumerable<ITree> trees = new List<Tree>();
लेकिन जब मैं इसे सामान्य विधि में रखें:
public void Do<T>() where T : ITree
{
IEnumerable<ITree> trees = new List<T>();
}
I संकलक से संकलित त्रुटि मिलती है:
त्रुटि 1 परोक्ष 'System.Collections.Generic.IEnumerable' के लिए कनवर्ट नहीं कर सकता प्रकार 'System.Collections.Generic.List'। एक स्पष्ट रूपांतरण मौजूद है (यदि आप एक डाली याद कर रहे हैं?) डी: \ प्रयोगशाला \ Lab.General \ Lab.General \ Program.cs 83 40 Lab.General
क्यों सहप्रसरण इस मामले में काम नहीं करता है?
के संभावित डुप्लिकेट ([? इस सी # 4 में एक सहप्रसरण बग है] http://stackoverflow.com/questions/2783233/is-this-a-covariance -Bug-इन-सी तेज -4) – nawfal