Je sais que ce que je veux faire et faisable, j'avais lu ça quelque part, mais je n'arrive pas à me rappeler ou.
Bref ce que je veux faire c'est appeler une fonction en passant une partie de son nom en parametre
disons que si j'avais qu'une seule fonction je l'appelerais comme ça:
validation.ValiderPersonne();
j'ai plusieurs validations que je voudrais appeler en se basant sur le nom du bouton sue lequel j'appuie
exemple : string x = button1.text;
puis appler ma fonction quelque chose comme : validation.'x'(); ou validation.Valider'x'();
Pour ce faire, il te faut utiliser la 'reflection' (using System.Reflection).
Ainsi, tu pourras appeler une méthode avec son nom (string).
Exemple:
Class1 c = new Class1();//Mon objet ou validation pour toi
object ret = typeof(Class1).InvokeMember("Test", BindingFlags.InvokeMethod, null, c, null);//Appel de la méthode Test(), le dernier paramètre (à null ici) permet de spécifier les paramètres de la méthode.
Cependant, pour ton problème, je t'aurais bien proposé de faire plutôt comme ceci:
Création d'une interface qui contient une méthode 'bool Validate()' : ex: IValidation
Ensuite, tu implémentes toutes les classes qui contiennent une validation et 'héritant' de cette interface.
Ainsi, tu pourras appeler chaque classe comme ceci:
IValidation valid = (IValidation) Activator.CreateInstance(Type.GetType('namespace.nom_de_ta_classe'));
bool result = valid.Validate();