Array ou dictionnary of deleguate

Résolu
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 7 déc. 2010 à 18:12
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 8 déc. 2010 à 09:37
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

Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
8 déc. 2010 à 09:09
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.
3
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
8 déc. 2010 à 09:19
C'est exactement ca! merci.
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
8 déc. 2010 à 09:28
Ha non! en fait cela revoi une erreur. zut!
No overload for 'othermethode' matches delegate
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
8 déc. 2010 à 09:31
Cette "othermethode" n'a pas la même signature?
Peux-tu fournir le code utilisé pour généré l'exception?

Shao.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
8 déc. 2010 à 09:35
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
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
8 déc. 2010 à 09:37
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
0
Rejoignez-nous