PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# Generics mit unterschiednlichen Typen zur Laufzeit?


Godmode
2009-01-27, 20:08:25
Ich versuche gerade den Type-Parameter einer generischen Klasse zur Laufzeit zu setzen.

normalerweise:
ICollection<int> intCollection = new ....

Ich möchte es aber so machen:

Type t = int.GetType();

ICollection<t> dynCollection = new ...

Ich weiß dass das so nicht funktioniert, da der Type-Parameter ein Klassenname sein muss und keine Instanz. Habt ihr eine Idee wie man sowas lösen könnte?

GamlerHart
2009-01-27, 21:05:15
Afaik geht das nur mit reflechtion

Type t = typeof(int);
Type generifiedCollection = typeof (List<>).MakeGenericType(t);
object instance = generifiedCollection.GetConstructor(new Type[0]).Invoke(new object[0]);

nicht gerade hübsch =(, ich hoffe ich liege falsch und jemand weis es besser