J'ai une classe "A" à partir de laquelle je veux appeler une méthode dans une autre classe "B" en passant une fonction en paramètre. La fonction passée en paramètre est dans la classe B. Alors, comment faire si j'appelle la méthode de la classe A? Je utilise Visual Studio 2008 et .NET Framework 3.5.Passer une méthode en paramètre en C# d'une classe différente
J'ai vu ce post mais il dit comment appeler une méthode principale en passant une autre méthode en tant que paramètre mais à partir de la même classe, pas de classe différente.
Par exemple, dans ce poste exemple ci-dessous est fourni:
public class Class1
{
public int Method1(string input)
{
//... do something
return 0;
}
public int Method2(string input)
{
//... do something different
return 1;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
public bool Test()
{
return RunTheMethod(Method1);
}
}
mais comment effectuer les opérations suivantes:
public Class A
{
(...)
public bool Test()
{
return RunTheMethod(Method1);
}
(...)
}
public class B
{
public int Method1(string input)
{
//... do something
return 0;
}
public int Method2(string input)
{
//... do something different
return 1;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
}
double possible de [Méthode passer comme paramètres en utilisant C#] (http://stackoverflow.com/questions/2082615/pass-method-as-parameter-using-c-sharp) –
@ StevenWood Ce n'est pas un doublon, s'il vous plaît lisez bien mon article avant de dire que c'est un doublon. Dans le post que vous avez dit, il fournit une solution si vous appelez RunTheMethod de la même classe, mais que se passe-t-il si vous appelez RunTheMethod d'une autre classe différente? En outre, le lien que vous avez fourni est déjà fourni par moi dans le post, voir le lien dans le message. – user1624552