Necesita usar un delegado, que es una clase especial que representa un método. Puede definir su propio delegado o usar uno de los integrados, pero la firma del delegado debe coincidir con el método que desea aprobar.
Definir su propio:
public delegate int MyDelegate(Object a);
Este ejemplo partidos un método que devuelve un entero y toma una referencia de objeto como un parámetro.
En su ejemplo, tanto el método A como el método B no toman ningún parámetro que haya devuelto el vacío, entonces podemos usar la clase de delegado Acción incorporada.
Aquí está su ejemplo modificado:
public void PassMeAMethod(string text, Action method)
{
DoSomething(text);
// call the method
method();
}
public void methodA()
{
//Do stuff
}
public void methodB()
{
//Do stuff
}
public void Test()
{
//Explicit
PassMeAMethod("calling methodA", new Action(methodA));
//Implicit
PassMeAMethod("calling methodB", methodB);
}
Como se puede ver, se puede utilizar el tipo de delegado, explícita o implícitamente, el que más le convenga.
Debería poder hacerlo con los delegados. – jimplode
¿Qué versión de .NET Framework está ejecutando? –
3.5, ¿alguien me puede mostrar usando el ejemplo anterior? gracias – raklos