Dictionnaire de delegate et typage dynamique

Résolu
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 14 déc. 2010 à 11:45
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 14 déc. 2010 à 13:34
Bonjour,

les listes de delegate et les typage dynamiques ne font pas bon ménage.

voici mes deux erreurs:
1)
The best overloaded method match for 'System.Collections.Generic.Dictionary<string,serializable_form<T>.task>.Add(string, serialization.serializable_form<T>.task)' has some invalid arguments
2)
connot convert 'methode group' to <T>task, task étant mon delegate

j ai une classe:
class serializable_form<T> where T : Control


une liste de delegate:
private delegate void task(T controlToSerialize);


une liste de procedures permettant de creer des objet contenant toutes les données a serializer:
 private void InstantiateSerializableCheckListe(CheckedListBox checkedListBox){
            this.AllDataForm.Add(new serializable_checkListe (checkedListBox).ConvertToCommon());
        }//end of InstantiateSerializableCheckListe


cet objet est conveti en un objet commun est enrigistré dans une liste:
  public List<serializable_common> AllDataForm = new List<serializable_common>();


l erreur se situe lorsque je rempli mon dictionnaire de delegate:
this.constructorFunctionList.Add(typeof(CheckedListBox).FullName, InstantiateSerializableCheckListe);


a savoir que je ne rencontre pas de problemme avec le typage dynamique seul ni avec les dictionnaires de delegate prennant en argument un type fixe.

j'ai essayé cette solution:
      private void InstantiateSerializableCheckListe(T checkedListBox){
            if (checkedListBox.GetType() == typeof(CheckedListBox))
            {
            this.AllDataForm.Add(new serializable_checkListe((CheckedListBox)checkedListBox).ConvertToCommon());}
        }//end of InstantiateSerializableCheckListe


mais cela me renvoi cette erreur:
"cannot convert T to CheckedListBox"

la classe Control n est pas Iconvertible, quelqu'un a t'il une autre idée svp.

merci.

3 réponses

l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
14 déc. 2010 à 13:12
Bonjour,

mafonction(T mavar){
utilisation_de(mavar as montypeherite)
}

...

jusque la tout va bien!
3
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
14 déc. 2010 à 13:26
Petite remarque en passant, au lieu de
if (checkedListBox.GetType() == typeof(CheckedListBox))

Tu peux faire
if (checkedListBox is CheckedListBox)

Shao.
3
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
14 déc. 2010 à 13:34
cool!

c'est bien plus clair!

merci!
0
Rejoignez-nous