È possibile trasmettere uno List<Subclass>
a List<Superclass>
in C# 4.0?covarianza in C#
Qualcosa in questo senso:
class joe : human {}
List<joe> joes = GetJoes();
List<human> humanJoes = joes;
Non è questo ciò di covarianza è per?
se si può fare:
human h = joe1 as human;
perché non dovresti essere in grado di fare
List<human> humans = joes as List<human>;
di quanto non sarebbe legale di farlo (Joe) gli esseri umani [0] perché questo l'oggetto è stato abbattuto .. e tutti sarebbero felici. Ora l'unica alternativa è creare un nuovo elenco
Questo è fondamentalmente lo stesso di [In C#, perché non può un elenco oggetto essere memorizzato in una variabile di lista
perché 'humans' si riferirebbe a un'istanza di' List', che causerebbe problemi come illustrato nell'esempio di @ Jon. –
sì, dopo aver corretto l'esempio l'ho ottenuto .. ha senso –