KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I wonder why IEnumerable<int> can't be assigned to a IEnumerable<object> . After all IEnumerable is one of the few interfaces that supports covariance... The subtype relation and covariance stuff works with reference types int seems to be a proper subtype of object The combination of both features doesn't work however... class A { } class B : A { } class Program { static void Main(string[] args) { bool b; b = typeof(IEnumerable<A>).IsAssignableFrom(typeof(List<B>)); Console.WriteLine("ienumerable of ref types is covariant: " + b); //true b = typeof(IEnumerable<object>).IsAssignableFrom(typeof(List<int>)); Console.WriteLine("ienumerable of value tpyes is covariant: " + b); //false b = typeof(object).IsAssignableFrom(typeof(int)); Console.WriteLine("int is a subtype of object: " + b); //true } } thanks for your help! sebastian
Tags (comma-separated)
Save Edits
Cancel