¿Es posible emitir List<Subclass>
a List<Superclass>
en C# 4.0?covarianza en C#
Algo a lo largo de estas líneas:
class joe : human {}
List<joe> joes = GetJoes();
List<human> humanJoes = joes;
No es esto lo covarianza es para?
si se puede hacer:
human h = joe1 as human;
por qué no se deben poder hacer
List<human> humans = joes as List<human>;
de lo que no sería legal de hacerlo (Joe) los seres humanos [0] porque eso el objeto se ha caído ... y todos estarían felices. Ahora, la única alternativa es crear una nueva lista
Este es básicamente el mismo que [En C#, ¿por qué no se puede almacenar un objeto de lista en una variable de lista
porque 'humans' se estaría refiriendo entonces a una instancia de' List ', que causaría problemas como se ilustra en el ejemplo de @ Jon. –
sí, después de que corrigió el ejemplo lo obtuve ... tiene sentido –