using System; namespace Articulos.Cap04 { // Clase con métodos de instancia: internal class ClaseDemo { public void Metodo1(int a) { Console.WriteLine("`Metodo1`. Valor de `a`: {0}", a.ToString()); } public void Metodo2(int a) { Console.WriteLine("`Metodo2`. Valor de `a`: {0}", a.ToString()); } } // Delegado con firma: // Retorno: void, Parámetros: int: public delegate void Delegado(int param); internal class EjemploMulticasting { public static void Main() { ClaseDemo cd = new ClaseDemo(); // Creación de 3 instancias de `Delegado`. // A cada una se le asigna métodos compatibles: Delegado del1 = cd.Metodo1; Delegado del2 = cd.Metodo2; Delegado del3 = Metodo3; //Creación de delegado con multicasting: Delegado conjuntoMetodos = del1 + del2; conjuntoMetodos += del3; conjuntoMetodos(5); } public static void Metodo3(int a) { Console.WriteLine("`Metodo3`. Valor de `a`: {0}", a.ToString()); } } }