¿Cómo utilizar la delegación en C#?
Los delegados se utilizan principalmente para controladores de eventos y funciones de devolución de llamada en .NET Framework, que son la base de los eventos.
La función de un delegado es similar a la función de un puntero de función en C++. La diferencia es que una instancia delegada es independiente de la clase del método que encapsula y el tipo de método es compatible con el tipo de delegado. Los punteros de función solo pueden hacer referencia a funciones estáticas, mientras que los delegados pueden aplicar métodos estáticos y de instancia.
Todos los delegados heredan de la clase System.Delegate y tienen una lista de llamadas. Los métodos ejecutados cuando se llama al delegado se almacenan en dicha lista de conexiones.
Utilice la palabra clave delegado para declarar un delegado. Se puede crear una instancia de un delegado asociándolo con un método con nombre o anónimo. Para poder utilizarlo con métodos con nombre, se debe crear una instancia del delegado con un método con una firma aceptable.
usando System;
usando System.Collections.Generic;
usando System.Linq;
usando System.Text; p>
usando System. p>
espacio de nombres ConsoleApplication1
{
//Declarar un delegado
delegado int Mydelegate(); p>
clase Programa
{
static void Main(string[] args)
{
prueba p = nuevo test();
//Apunta al delegado al método no estático
Mydelegate m = new Mydelegate(p.InstanceMethod);
//Llamar el método no estático
m ();
//Apunta al delegado al método estático
m = new Mydelegate(test.StaticMethod);
//Llamar al método estático
m();
Console.Read();
}
}
prueba de clase pública
{
public int InstanceMethod()
{
Console.WriteLine ("Llamando al método no estático InstanceMethod()....") ;
return 0;
}
static public int StaticMethod() p>
{
Console.WriteLine ("Llamando al método estático StaticMethod(). . . . ");
devuelve 0;
}
}
}