Dictionnaire de delegate et typage dynamique [Résolu]

Messages postés
221
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
- - Dernière réponse : l0r3nz1
Messages postés
221
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.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
221
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
3
Merci
Bonjour,

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

...

jusque la tout va bien!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de l0r3nz1
Messages postés
155
Date d'inscription
jeudi 12 mai 2005
Statut
Membre
Dernière intervention
8 mars 2011
1
3
Merci
Petite remarque en passant, au lieu de
if (checkedListBox.GetType() == typeof(CheckedListBox))

Tu peux faire
if (checkedListBox is CheckedListBox)

Shao.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Shaolyne
Messages postés
221
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
0
Merci
cool!

c'est bien plus clair!

merci!
Commenter la réponse de l0r3nz1