Generic, unbekannten Typen übergeben

04/09/2007 - 13:22 von Dennis Nusser | Report spam
Hallo,

ich arbeite sehr gerne mit den generischen Typen und bin auf ein Problem
gestoßen das ich derzeit nicht lösen kann.

Angenommen ich habe eine Klasse Pair<T> und möchte diese in eine
List<Pair<?>> einfügen.
Ich denke das man das Problem bereits sehen kann.

<code>

Pair<string> pair1 = new Pair<string>("hallo");
Pair<int> pair2 = new Pair<int>(100);
Pair<bool> pair3 = new Pair<bool>(true);

// die Pair#s in die Liste einfügen ? ist mein Problem

List<Pair<?>> list = new List<Pair<?>>();
list.Add(pair1);
list.Add(pair2);
list.Add(pair3);

</code>

Pair<T> kann mehrere Typen annehmen. Alle diese Typen sollen in die List<>
aufgenommen werden können.
Grundsàtzlich geht es mir ja nur darum, dass ich eine Type-Sichere
Auflistungsklasse habe.
ich könnte natürlich auch ein ArrayList nehmen oder irgend eine andere
Auflistungsklasse.

Mir geht's eigentlich um die Frage, wie kann ich eine generische Type,
dessen Parameter ich nicht kenne zuweisen.
Gibt es eventuell ein Interface das mir nicht bekannt ist, oder muss ich bei
der Deklaration den Typen bereits parametrisieren und kann diesen spàter
nicht mehr àndern.

Sollte das so sein, wie würde man das lösen können.

Danke für eure Hilfe
Dennis
 

Lesen sie die antworten

#1 Jens Wefer
05/09/2007 - 12:29 | Warnen spam
du kannst doch den type abfragen und mit boxing/unboxing zuweisen.
oder hab ich dich nicht ganz verstanden?

bye, jens.

Dennis Nusser schrieb:
Hallo,

ich arbeite sehr gerne mit den generischen Typen und bin auf ein Problem
gestoßen das ich derzeit nicht lösen kann.

Angenommen ich habe eine Klasse Pair<T> und möchte diese in eine
List<Pair<?>> einfügen.
Ich denke das man das Problem bereits sehen kann.

<code>

Pair<string> pair1 = new Pair<string>("hallo");
Pair<int> pair2 = new Pair<int>(100);
Pair<bool> pair3 = new Pair<bool>(true);

// die Pair#s in die Liste einfügen ? ist mein Problem

List<Pair<?>> list = new List<Pair<?>>();
list.Add(pair1);
list.Add(pair2);
list.Add(pair3);

</code>

Pair<T> kann mehrere Typen annehmen. Alle diese Typen sollen in die
List<> aufgenommen werden können.
Grundsàtzlich geht es mir ja nur darum, dass ich eine Type-Sichere
Auflistungsklasse habe.
ich könnte natürlich auch ein ArrayList nehmen oder irgend eine andere
Auflistungsklasse.

Mir geht's eigentlich um die Frage, wie kann ich eine generische Type,
dessen Parameter ich nicht kenne zuweisen.
Gibt es eventuell ein Interface das mir nicht bekannt ist, oder muss ich
bei der Deklaration den Typen bereits parametrisieren und kann diesen
spàter nicht mehr àndern.

Sollte das so sein, wie würde man das lösen können.

Danke für eure Hilfe
Dennis

Ähnliche fragen