bilb0t> au début je pensais faire une interface mais j'ai le champs dictionnaire qui m'en empèche (de plus la fonction addInput peut etre commune à toutes les sous classe)
Je suis au début de mon projet, donc pas de pb pour repenser comment faire mais je veux faire un truc tellement générique que c'est pas vraiment joli..
Je suis tout à fait d'accord avec toi. Mais les objet de type traiteur son dépend de ce qui leur sera mis comme objet en input.Citation:
Marchera pas si à un type autre que UneClasse est affecté à obj1
Je vois deux possibilités :
1-avant chaque appel à _inputs["unAlias"], je test si le cast sera possible avec un is
2-je teste lors de l'ajout d'un input avec addInput qu'il est du type voulu :
Je penche plutot pour la seconde solutionCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 protected Dictionary<string, Type> _dicAliasTypeAttendu = new Dictionary<string, Type>(); //on défini les type attendus public unTraiteur() { _dicAliasTypeAttendu.Add("obj1", typeof(UneClasse)); _dicAliasTypeAttendu.Add("obj2", typeof(MonInt32)); } public void addInput(string alias, object newInput) { if (newInput.GetType().Equals(_dicAliasTypeAttendu[alias]) ) _inputs.Add(alias, newInput); }