Laden...

Vererbung: Property in Base1 vom Typ List<Base2> soll in Sub1 als List<Sub2> angesprochen werden

Erstellt von Wax vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.487 Views
Wax Themenstarter:in
731 Beiträge seit 2006
vor 12 Jahren
Vererbung: Property in Base1 vom Typ List<Base2> soll in Sub1 als List<Sub2> angesprochen werden

Hallo zusammen,

auf dem beigefügten Bild sieht man, dass es 2 Arten von Reservierungen gibt und 2 Arten von Klassen, die jeweils eine Reservierungsliste als Member besitzen.
Nun würde ich es gerne so haben, dass beim Zugriff auf die Liste sich je nach Vererbungsebene ein anderer Typ als Listenelement präsentiert.
Also wenn ich auf eine Instanz von "BasisKlasse" zugreife, dann soll die Liste als List<Reservierung> "sichtbar" sein. Wenn ich aber auf eine Instanz von "SpezielleKlasse" zugreife, dann sollen die Listenelemente vom Typ "SpezielleReservierung" sein.

Ist das per Vererbung überhaupt möglich? Ich verwende .NET 3.5.

MfG
wax

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo Wax,

Stichwort: Ko- und Kontravarianz. Gibt es aber erst ab .NET 4.0.

herbivore

Wax Themenstarter:in
731 Beiträge seit 2006
vor 12 Jahren

Hi herbivore,

das hatte ich befürchtet!

MfG
wax

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo Wax,

mit Hilfe von ReadOnlyBaseList <TBase, TDerived> - Ein hilfreicher Wrapper kannst du aber immerhin in SpezielleKlasse eine Property SpezielleReservierungen vom Typ List<SpezielleReservierung> definieren.

herbivore

Wax Themenstarter:in
731 Beiträge seit 2006
vor 12 Jahren

Danke.