È possibile ottenere il seguente codice? So che non funziona, ma mi chiedo se esiste una soluzione alternativa?
Type k = typeof(double);
List<k> lst = new List<k>();
È possibile ottenere il seguente codice? So che non funziona, ma mi chiedo se esiste una soluzione alternativa?
Type k = typeof(double);
List<k> lst = new List<k>();
Risposte:
Si C'è:
var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(typeof(double));
var list = Activator.CreateInstance(specificListType);
Un modo più pulito potrebbe essere quello di utilizzare un metodo generico. Fai qualcosa di simile:
static void AddType<T>()
where T : DataObject
{
Indexes.Add(typeof(T), new Dictionary<int, T>());
}