Array ou dictionnary of deleguate

Résolu
Signaler
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
Bonjour,

j'ai vu quelques bout de code concernant des tableaux de delegate:
dans la classe 1
public delegate void task();
public static task[] tasks = { methodeA };

dans la classe 2
classe1.tasks[0]();

souci 1 la methodeA ne peut ni renvoyer de variable ni avoir d arguments, a part utliser des variable globales, que peut faire pour palier a ce pb?

souci 2 concernant les Dictionnary:
classe 1
public static Dictionary<String, task> task_list =
new Dictionary<string, task>();

dans classe 2:
classe1.task_list.Add("demo",methodeA);
DemoDelegate .task_list ["demo"]();


Pas possible de passer un argument ou renvoyer une valeur sans generer une erreur.

please help!!!

6 réponses

Messages postés
155
Date d'inscription
jeudi 12 mai 2005
Statut
Membre
Dernière intervention
8 mars 2011
1
Bien le bonjour,

D'après ce que j'ai compris, tu aimerais pouvoir passer des paramètres et retourner des valeurs à des méthodes contenues dans un tableau, correct?
Si c'est le cas, il te suffit d'adapter ton delegué en fonction de tes besoin. En effet, si tu veux un tableau de méthodes prenant 2 int en paramètres et un bool en retour, tu dois alors faire ceci:

Problème 1
Classe1
public delegate bool task(int a, int b); 
public static task[] tasks =  { methodeA };

public static bool methodeA(int a, int b)
{
   //Traitement
}

Classe2
bool IsTrue  = classe1.tasks[0](1, 10);


Problème 2
La résolution du 1 te donnera le résultat excompté en 2 :)

Shao.
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012

C'est exactement ca! merci.
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012

Ha non! en fait cela revoi une erreur. zut!
No overload for 'othermethode' matches delegate
Messages postés
155
Date d'inscription
jeudi 12 mai 2005
Statut
Membre
Dernière intervention
8 mars 2011
1
Cette "othermethode" n'a pas la même signature?
Peux-tu fournir le code utilisé pour généré l'exception?

Shao.
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012

public delegate void task(Object txt);

au lieu de

public delegate void task(TextBox txt);

j'avais dans l'idée de mettre un tableau d'objet en argument pour géneraliser le truc
Messages postés
218
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012

en fait methodeA et othermethode sont deux methode toute bete, leur code n'apporte rien j'ai fait deux methode pour "switcher" les tests avec et sans arguments plus vite