以下是给定的内容:
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。