C # List <Interface>: почему вы не можете сделать `List <IFoo> foo = new List <Bar> ();`
Если у вас есть интерфейсIFoo
и классBar : IFoo
почему вы можете сделать следующее:
List<IFoo> foo = new List<IFoo>();
foo.Add(new Bar());
Но вы не можете сделать:
List<IFoo> foo = new List<Bar>();