fork download
  1. using System;
  2.  
  3. namespace Articulos.Cap04
  4. {
  5. // Clase con métodos de instancia:
  6. internal class ClaseDemo
  7. {
  8. public void Metodo1(int a)
  9. {
  10. Console.WriteLine("`Metodo1`. Valor de `a`: {0}", a.ToString());
  11. }
  12.  
  13. public void Metodo2(int a)
  14. {
  15. Console.WriteLine("`Metodo2`. Valor de `a`: {0}", a.ToString());
  16. }
  17. }
  18.  
  19. // Delegado con firma:
  20. // Retorno: void, Parámetros: int:
  21. public delegate void Delegado(int param);
  22.  
  23. internal class EjemploMulticasting
  24. {
  25. public static void Main()
  26. {
  27. ClaseDemo cd = new ClaseDemo();
  28.  
  29. // Creación de 3 instancias de `Delegado`.
  30. // A cada una se le asigna métodos compatibles:
  31. Delegado del1 = cd.Metodo1;
  32. Delegado del2 = cd.Metodo2;
  33. Delegado del3 = Metodo3;
  34.  
  35. //Creación de delegado con multicasting:
  36. Delegado conjuntoMetodos = del1 + del2;
  37. conjuntoMetodos += del3;
  38.  
  39. conjuntoMetodos(5);
  40. }
  41.  
  42. public static void Metodo3(int a)
  43. {
  44. Console.WriteLine("`Metodo3`. Valor de `a`: {0}", a.ToString());
  45. }
  46. }
  47. }
Success #stdin #stdout 0.03s 34712KB
stdin
Standard input is empty
stdout
`Metodo1`. Valor de `a`: 5
`Metodo2`. Valor de `a`: 5
`Metodo3`. Valor de `a`: 5