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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...)