Personas que lo han encontrado útil: 3 de 7 - Valorar este tema

delegate (Referencia de C#)

La declaración de un tipo de delegado se presenta de la siguiente forma:

public delegate void TestDelegate(string message);

La palabra clave delegate se usa para declarar un tipo de referencia, que puede utilizarse para encapsular un método con nombre o anónimo. Los delegados son similares a los punteros a funciones de C++, pero son más seguros y proporcionan mayor seguridad de tipos. Para las aplicaciones de delegados, vea Delegados y Delegados genéricos.

Los delegados son la base de los eventos.

Se pueden crear instancias de un delegado asociándolo a un método con nombre o anónimo. Para obtener más información, vea Métodos con nombre y Métodos anónimos.

Para el uso con métodos con nombre, se deben crear instancias del delegado con un método que tenga una firma aceptable. Para obtener más información sobre el grado de variación permitida en la firma de método, vea Covarianza y contravarianza en los delegados. Para el uso con métodos anónimos, el delegado y el código que se van a asociar se declaran juntos. En esta sección se describen las dos formas de crear instancias de delegados.

using System;
// Declare delegate -- defines required signature:
delegate void SampleDelegate(string message);

class MainClass
{
    // Regular method that matches signature:
    static void SampleDelegateMethod(string message)
    {
        Console.WriteLine(message);
    }

    static void Main()
    {
        // Instantiate delegate with named method:
        SampleDelegate d1 = SampleDelegateMethod;
        // Instantiate delegate with anonymous method:
        SampleDelegate d2 = delegate(string message)
        { 
            Console.WriteLine(message); 
        };

        // Invoke delegate d1:
        d1("Hello");
        // Invoke delegate d2:
        d2(" World");
    }
}

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 1.11 Delegados

  • 15 Delegados

¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar