KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to pass A list of DerivedClass to a function that takes a list of BaseClass , but I get the error: cannot convert from 'System.Collections.Generic.List<ConsoleApplication1.DerivedClass>' to 'System.Collections.Generic.List<ConsoleApplication1.BaseClass>' Now I could cast my List<DerivedClass> to a List<BaseClass> , but I don't feel comfortable doing that unless I understand why the compiler doesn't allow this. Explanations that I have found have simply said that it violates type safety somehow, but I'm not seeing it. Can anyone help me out? What is the risk of the compiler allowing conversion from List<DerivedClass> to List<BaseClass> ? Here's my SSCCE: class Program { public static void Main() { BaseClass bc = new DerivedClass(); // works fine List<BaseClass> bcl = new List<DerivedClass>(); // this line has an error doSomething(new List<DerivedClass>()); // this line has an error } public void doSomething(List<BaseClass> bc) { // do something with bc } } class BaseClass { } class DerivedClass : BaseClass { }
Tags (comma-separated)
Save Edits
Cancel