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 | Menü editieren Seite wurde zuletzt geändert am 28.03.2007 15:29 Uhr von Elsni
Diese Seite wurde bisher 694 mal aufgerufen.
Seite Bearbeiten | Seitenhistorie

Powered by PmWiki
Page generated in 0,71 seconds.