Generic und Vererbung

03/06/2008 - 09:45 von Mali Findik | Report spam
Hallo zusammen,

mir ist nicht ganz klar warum folgende Zeile zu einem Compilierfehler führt.

List<IClassA> classAList = new List<ClassA>;

wobei IClassA ein Interface ist, und ClassA : IClassA implementiert.

Die Fehlermeldung lautet:
Eine implizite Konvertierung vom Typ
"System.Collections.Generic.List<ClassA>" in
"System.Collections.Generic.List<IClassA>" ist nicht möglich.

Gruß,

Mali

PS: Ein expliziter Cast ist auch nicht möglich.
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
03/06/2008 - 12:30 | Warnen spam
"Mali Findik" schrieb:
mir ist nicht ganz klar warum folgende Zeile zu einem Compilierfehler
führt.

List<IClassA> classAList = new List<ClassA>;

wobei IClassA ein Interface ist, und ClassA : IClassA implementiert.



Ist 'A' Basistyp von 'B' oder eine Schnittstelle, die 'B' implementiert,
dann gilt nicht, daß 'T<B>' Untertyp von 'T<A>'. Dies ist so festgelegt, in
Java ist es m.E. anders definiert.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen