Main /

C Sharp Design Problem Mit Generics

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

C Sharp Design Problem Mit Generics

/ HomePage / Computer / Programmierung / Beispiele & Snippets? / C Sharp? / C Sharp Design Problem Mit Generics

Ein C# Design Problem mit generischen Listen und bisher keine Lösung

Gegeben sei eine Klasse BusinessObject von der die Klassen Customer und Project abgeleitet sind.

Weiterhin existiert eine Klasse

public class BusinessObjectList<T> : System.ComponentModel.BindingList<T> where T : BusinessObject
{
...
}

Man kann also z.b. je eine Liste für Customer und Project-Objekte anlegen:

private BusinessObjectList<Customer> customerlist;
private BusinessObjectList<Project> projectlist;

Ziel ist es nun, eine generische Liste listcontainer zu erzeugen, in der obige beiden Listen als Elemente hinein können. Das Problem ist dass BusinessObjectList<Customer> ein anderer Typ ist als BusinessObjectList<Project> und auch als BusinessObjectList<BusinessObject>

Zwar ist es möglich eine Liste wie folgt zu definieren:

private List<BusinessObjectList<BusinessObject>> listcontainer;

Da aber die Ausprägungen einer generischen liste andere Objekte sind, schlägt die Zuweisung fehl:

listcontainer.Add(customerlist); // Compiler wirft Fehlermeldung
 

Man könnte vorher die Listen in den Typ BusinessObjectList<BusinessObject> umwandeln, das ist aber weder Ressourcenschonend noch praktikabel, denn damit geht die Information verloren um welche Art Liste es sich eigentlich gehandelt hat.

Wie kann man das Problem lösen?

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 28.03.2007 15:29 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki