Учитывая следующее:
class Base<T> {/*...*/}
class Der<T>: Base<T> {/*...*/}
interface Sth<T>{
IEnumerable<Base<T>> Foo {get;}
}
// and implementation...
class Impl<T>: Sth<T> {
public IEnumerable<Base<T>> Foo {
get {
return new List<Der<T>>();
}
}
}
Как это сделать? Ошибка, очевидно, не является неявным преобразованием, найденным в List < Der < T → для List < Base < T → . Если я его явно укажу, произойдет InvalidCastException.