public static void Main() { Console.WriteLine ("Se inicia el programa"); // Se crea una objeto de la clase Programa Programa objPrograma = new Programa (); // Se crea un objeto de el tipo delegado y se le añade un método. No importa si el método es de // un objeto de la propia clase. TipoDelegado objDelegado = new TipoDelegado (objPrograma.Metodo1); // Se añade al objeto delegado un método, ahora el objeto delegado tendrá 2 métodos añadidos. // Al añadir un primer método a un delegado se puede usar el operador de asignación '=' pero // si quisiéramos añadir otro método se tiene que usar el operador '+=' , como lo siguiente. objDelegado += new TipoDelegado (objPrograma.Metodo2); Console.WriteLine ("Se llamará al objeto delegado con los métodos ya asignados"); objDelegado (); Console.WriteLine ("Se llamará al objeto delegado después de quitar Metodo2"); // Quitar el método 'Metodo2' y luego llamar al objeto delegado objDelegado -= new TipoDelegado (objPrograma.Metodo2); objDelegado (); // Se puede añadir el mismo método más de una vez Console.WriteLine ("Se añade el Metodo1, que ya se añadió"); objDelegado += new TipoDelegado (objPrograma.Metodo1); }
public void ATrabajar(TipoDelegado mideleg) { int i; for (i = 0; i < 500; i++) { System.Threading.Thread.Sleep(1); //Hacemos el trabajo switch (i) { case 125: PocentajeHecho = 25; mideleg(PocentajeHecho); break; case 250: PocentajeHecho = 50; mideleg(PocentajeHecho); break; case 375: PocentajeHecho = 75; mideleg(PocentajeHecho); break; } } }