No entiendo por qué 'x' a continuación se convierte, pero 'y' y 'z' no.¿La covarianza de C# 4 respalda la anidación de genéricos?
var list = new List<List<int>>();
IEnumerable<List<int>> x = list;
List<IEnumerable<int>> y = list;
IEnumerable<IEnumerable<int>> z = list;
¿La función de nueva covarianza simplemente no funciona en genéricos de genéricos o estoy haciendo algo mal? (Me gustaría evitar usar .Cast <> para hacer que yyz funcionen.)
Bueno, parte del problema era que 'z' no funcionaba para mí porque todavía tenía como objetivo 3.5. Oops. Gracias por la explicación de que 'y' no funciona, tiene sentido. – scobi