Type variable non connu à la compilation
Bon, je me retrouve face à plein de problèmes aujourd'hui... J'arrive à en résoudre la plupart en les contournant, bien que ce soit moins sympa, mais certains subsistent, dont celui-ci :Comment utiliser un type qu'on ne connait pas à la compilation?
structure est un tableau d'objets qui possedent une variable Type de type Type (comme Champ), donc stocke un type.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Type t = (structure[num].Type);
champs.Add(nom, (object)new Champ<t>(nom));
...
public class Champ<T>
{
public Type Type = typeof(T);
public string Nom;
public Champ(nom) { Nom = nom ; }
....
} |
Le problème est que pour créer l'objet Champ, je dois en connaitre le type, mais celui-ci n'est pas connu à la compilation.
Le compilateur n'est pas content :
Erreur 1 : Le type ou le nom d'espace de noms 't' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
Est-il possible de résoudre l'erreur? Ou dois-je me résigner à oublier le type ?
(j'ai bien entendu énormément raccourci pr la lisibilité, il y a une boucle traitant plusieurs objets, etc...)