Gegeben sei das Folgende:
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>>();
}
}
}
Wie kann ich das kompilieren? Der Fehler ist offensichtlich, nicht implizite Konvertierung von List<Der<T>> nach List<Base<T>> gefunden. Wenn ich es explizit caste, tritt InvalidCastException auf.